Create Instance-Level and Root-Group-Level Extension Marketplace settings
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=451871) - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=451871) </details> <!--IssueSummary end--> MR: Pending... ## Description Based on [this note](https://gitlab.com/gitlab-com/legal-and-compliance/-/issues/1932#note_1820192320) and [this comment](https://gitlab.com/gitlab-org/gitlab/-/issues/451871#note_1854307623): > Introduce these settings at **instance level settings for self-managed customers** and at **root group level settings for .com customers** > > * **Extension Marketplace**: which defines the `extensionMarketplace` settings we give to VSCode when we start up. If this is not set, then we'll show a message in the VSCode Extensions tab like "Extension Marketplace has not been enabled for the GitLab instance. Please contact a GitLab administrator." > * **Require user opt-in**: which is a boolean for whether users of the GitLab instance are required to opt-in to the Extension Marketplace. This is necessary for GDPR when the Extension Marketplace comes from a third party relevant to the GitLab instance. We'll have this setting enabled on `.com` but can be overriden by the root-group administrators. For self-managed instances, GitLab admins might be using an Extension Marketplace which they own and can leave this setting disabled or configure it at the instance level. ## Implementation Plan - The presence of these settings should be behind a feature flag `ide_extension_marketplace`. - We should encapsulate some of the conditions in a module under `lib/gitlab/web_ide` or something like that. - These same settings will be used by Remote Development, so it isn't Web IDE specific. - There are some hardcoded references to `openvsx` we'll need to update https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157999#note_1994197280
issue