diff --git a/config/feature_flags/wip/vscode_extension_marketplace_settings.yml b/config/feature_flags/beta/vscode_extension_marketplace_settings.yml similarity index 90% rename from config/feature_flags/wip/vscode_extension_marketplace_settings.yml rename to config/feature_flags/beta/vscode_extension_marketplace_settings.yml index 8614962383fc8a7357455736627c501cf6dcf7ca..bb4f5797137fbd2fb1c6fb9f38942db42e54a6ce 100644 --- a/config/feature_flags/wip/vscode_extension_marketplace_settings.yml +++ b/config/feature_flags/beta/vscode_extension_marketplace_settings.yml @@ -5,5 +5,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/181624 rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/508996 milestone: '17.10' group: group::remote development -type: wip -default_enabled: false +type: beta +default_enabled: true diff --git a/config/feature_flags/beta/web_ide_extensions_marketplace.yml b/config/feature_flags/beta/web_ide_extensions_marketplace.yml index ba76b1d3fb598d7acef9c41af88c2884ee9724a6..03f8a375bf66af1280e1fd2b3ddaaebd8651d307 100644 --- a/config/feature_flags/beta/web_ide_extensions_marketplace.yml +++ b/config/feature_flags/beta/web_ide_extensions_marketplace.yml @@ -6,4 +6,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/459028 milestone: '17.0' group: group::ide type: beta -default_enabled: false +default_enabled: true diff --git a/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb b/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb index 1f81de3853b0878bc3596c9c7fd388b4f16094f1..eb0a681f273a7ea54a2a4e25c35c8e9ec6c3f716 100644 --- a/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb +++ b/db/migrate/20250228183319_migrate_vscode_extension_marketplace_feature_flag_to_data.rb @@ -44,6 +44,10 @@ def down def extension_marketplace_flag_enabled? # NOTE: It's possible the flag is only enabled for a specific user, but in that case we'll assume # the instance admin didn't want the feature globally available and we won't initialize the data. - Feature.enabled?(:web_ide_extensions_marketplace, nil) && Feature.enabled?(:vscode_web_ide, nil) + Feature.enabled?(:web_ide_extensions_marketplace, nil) && + # NOTE: We only want to migrate instances that have **explicitly** opted in to the early + # extensions marketplace experience (not just enabled by default feature flag). + Feature.persisted_name?(:web_ide_extensions_marketplace) && + Feature.enabled?(:vscode_web_ide, nil) end end diff --git a/doc/administration/settings/vscode_extension_marketplace.md b/doc/administration/settings/vscode_extension_marketplace.md new file mode 100644 index 0000000000000000000000000000000000000000..1a1d5516d2620de860fff761b1cb09acba2b344a --- /dev/null +++ b/doc/administration/settings/vscode_extension_marketplace.md @@ -0,0 +1,74 @@ +--- +stage: Create +group: Remote Development +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments +description: Configure VS Code Extension Marketplace for features on the GitLab self-managed instance. +title: Configure VS Code Extension Marketplace +--- + +{{< details >}} + +- Tier: Free, Premium, Ultimate +- Offering: GitLab Self-Managed + +{{< /details >}} + +The VS Code Extension Marketplace provides you with access to extensions that enhance the +functionality of the [Web IDE](../../user/project/web_ide/_index.md) and +[Workspaces](../../user/workspace/_index.md) in GitLab. As an administrator, you can enable this +feature across your GitLab instance and configure which extension registry your users can access. + +## Access VS Code Extension Marketplace settings + +Prerequisites: + +- You must be an administrator. + +To access the VS Code Extension Marketplace settings: + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Settings > General**. +1. Expand **VS Code Extension Marketplace**. + +## Enable with default extension registry + +By default, the GitLab instance is configured to use the [Open VSX](https://open-vsx.org/) +extension registry. To enable the extension marketplace with this default configuration: + +Prerequisites: + +- You must be an administrator. + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Settings > General**. +1. Expand **VS Code Extension Marketplace**. +1. Toggle on **Enable Extension Marketplace** to enable the extension marketplace across the GitLab instance. + +## Customize extension registry + +To connect the GitLab instance with a custom extension registry: + +Prerequisites: + +- You must be an administrator. + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Settings > General**. +1. Expand **VS Code Extension Marketplace**. +1. Expand **Extension registry settings**. +1. Toggle off **Use Open VSX extension registry**. +1. Enter full URLs for a VS Code extension registry's **Service URL**, **Item URL**, and **Resource URL Template**. +1. Select **Save changes**. + +{{< alert type="note" >}} + +After enabling the extension marketplace, users must still +[opt in to use the extension marketplace](../../user/profile/preferences.md#integrate-with-the-extension-marketplace). + +If you modify the extension registry URLs: + +- Users who previously opted in must opt in again with the new registry. +- Users who have not opted in are not affected. +- Active Web IDE or Workspaces sessions continue to use their current configuration until refreshed. + +{{< /alert >}} diff --git a/doc/user/enterprise_user/_index.md b/doc/user/enterprise_user/_index.md index 5db71e6643d6a8021f1a6047a57ef5fd3a023c8a..0ec05b2f645567bcc7b92bc8e1f2e376cd2ad00b 100644 --- a/doc/user/enterprise_user/_index.md +++ b/doc/user/enterprise_user/_index.md @@ -245,9 +245,11 @@ To disable 2FA: {{< history >}} - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161819) as a [beta](../../policy/development_stages_support.md#beta) in GitLab 17.0 [with flags](../../administration/feature_flags.md) named `web_ide_oauth` and `web_ide_extensions_marketplace`. Disabled by default. -- Feature flag `web_ide_oauth` [enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) in GitLab 17.4. -- Feature flag `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4. -- Feature flag `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5. +- `web_ide_oauth` [enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) in GitLab 17.4. +- `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4. +- `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5. +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/508996) the `vscode_extension_marketplace_settings` [feature flag](../../administration/feature_flags.md) in GitLab 17.10. Disabled by default. +- `web_ide_extensions_marketplace` and `vscode_extension_marketplace_settings` [enabled on GitLab Self-Managed](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.11. {{< /history >}} @@ -258,6 +260,11 @@ For more information, see the history. {{< /alert >}} +Prerequisites: + +- In the **Admin** area, a GitLab administrator must + [enable the extension marketplace](../../administration/settings/vscode_extension_marketplace.md). + If you have the Owner role for a top-level group, you can enable the [extension marketplace](../project/web_ide/_index.md#extension-marketplace) for enterprise users. diff --git a/doc/user/profile/preferences.md b/doc/user/profile/preferences.md index 8fd80f0d667cf9b12682e7a63487d8e2e81c36a9..9df609302c997fac190a83f0fa106e99c1bfbd0d 100644 --- a/doc/user/profile/preferences.md +++ b/doc/user/profile/preferences.md @@ -474,10 +474,13 @@ You must be the administrator of the GitLab instance to configure GitLab with So {{< history >}} -- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151352) as a [beta](../../policy/development_stages_support.md#beta) in GitLab 17.0 [with flags](../../administration/feature_flags.md) named `web_ide_oauth` and `web_ide_extensions_marketplace`. Disabled by default. -- Feature flag `web_ide_oauth` [enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) and feature flag `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4. -- Feature flag `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5. +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161819) as a [beta](../../policy/development_stages_support.md#beta) in GitLab 17.0 [with flags](../../administration/feature_flags.md) named `web_ide_oauth` and `web_ide_extensions_marketplace`. Disabled by default. +- `web_ide_oauth` [enabled on GitLab.com, GitLab Self-Managed, and GitLab Dedicated](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163181) in GitLab 17.4. +- `web_ide_extensions_marketplace` [enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.4. +- `web_ide_oauth` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464) in GitLab 17.5. - Enabled by default for [workspaces](../workspace/_index.md) in GitLab 17.6. Workspaces do not require any feature flags for the extension marketplace to be available. +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/508996) the `vscode_extension_marketplace_settings` [feature flag](../../administration/feature_flags.md) in GitLab 17.10. Disabled by default. +- `web_ide_extensions_marketplace` and `vscode_extension_marketplace_settings` [enabled on GitLab Self-Managed](https://gitlab.com/gitlab-org/gitlab/-/issues/459028) in GitLab 17.11. {{< /history >}} @@ -492,6 +495,11 @@ You can use the [extension marketplace](../project/web_ide/_index.md#extension-m manage extensions for the [Web IDE](../project/web_ide/_index.md) and [workspaces](../workspace/_index.md). For third-party extensions, you must enable the marketplace in user preferences. +Prerequisites: + +- In the **Admin** area, a GitLab administrator must + [enable the extension marketplace](../../administration/settings/vscode_extension_marketplace.md). + To enable the extension marketplace for the Web IDE and workspaces: 1. On the left sidebar, select your avatar. @@ -501,12 +509,6 @@ To enable the extension marketplace for the Web IDE and workspaces: 1. In the third-party extension acknowledgement, select **I understand**. 1. Select **Save changes**. -{{< alert type="note" >}} - -This preferences checkbox will always be available, even if the feature flags are disabled. - -{{< /alert >}} -