Extensions for Microsoft Visual Studio Code - Open Source
-
The embedded instance of the Open VSX registry that runs in the
plugin-registry
pod of Che to support air-gapped, offline, and proxy-restricted environments. The embedded Open VSX registry contains only a subset of the extensions published on open-vsx.org. This subset is customizable. -
The public open-vsx.org registry that is accessed over the internet.
-
A standalone Open VSX registry instance that is deployed on a network accessible from Che workspace pods.
The default is the Open VSX registry at https://open-vsx.org
.
Selecting an Open VSX registry instance
The default is the Open VSX registry at https://open-vsx.org
.
If the default Open VSX registry instance is not what you need, you can select one of the following instances:
-
The embedded instance of the Open VSX registry that runs in the
plugin-registry
pod of Che to support air-gapped, offline, and proxy-restricted environments. The embedded Open VSX registry contains only a subset of the extensions published on open-vsx.org. This subset is customizable. -
A standalone Open VSX registry instance that is deployed on a network accessible from Che workspace pods.
-
Edit the
openVSXURL
value in theCheCluster
custom resource:spec: components: pluginRegistry: openVSXURL: "<url_of_an_open_vsx_registry_instance>" (1)
1 For example: openVSXURL: "https://open-vsx.org"
.-
To select the embedded Open VSX registry instance in the
plugin-registry
pod, useopenVSXURL: ''
. You can customize the list of included extensions. -
You can also point
openVSXURL
at the URL of a standalone Open VSX registry instance if its URL is accessible from within your organization’s cluster and not blocked by a proxy.
-
Adding or removing extensions in the embedded Open VSX registry instance
You can add or remove extensions in the embedded Open VSX registry instance. This results in a custom build of the Open VSX registry that can be used in your organization’s workspaces.
To get the latest security fixes after a Che update, rebuild your container based on the latest tag or SHA. |
-
Get the publisher and extension name of each chosen extension:
-
Find the extension on the Open VSX registry website and copy the URL of the extension’s listing page and extension’s version.
-
Extract the <publisher> and <extension> name from the copied URL:
https://open-vsx.org/extension/<publisher>/<name>
If the extension is only available from Microsoft Visual Studio Marketplace, but not Open VSX, you can ask the extension publisher to also publish it on open-vsx.org according to these instructions, potentially using this GitHub action.
If the extension publisher is unavailable or unwilling to publish the extension to open-vsx.org, and if there is no Open VSX equivalent of the extension, consider reporting an issue to the Open VSX team.
-
-
Build the custom plugin registry image and update CheCluster custom resource:
-
During the build process, each extension will be verified for compatibility with the version of Visual Studio Code used in Che.
-
Using Che instance:
-
Login to your Che instance as an administrator.
-
Start a workspace using the plugin registry repository.
-
Open a terminal and check out the Git tag that corresponds to your Che version (e.g.,
7.87.0
):git checkout $PRODUCT_VERSION
-
Open the
che-plugin-registry/openvsx-sync.json
file and add or remove extensions. -
Execute
1. Build and Publish a Custom Plugin Registry
task in the workspace (Terminal → Run Task… → devfile → 1. Build and Publish a Custom Plugin Registry). -
Execute
2. Configure Che to use the Custom Plugin Registry
task in the workspace (Terminal → Run Task… → devfile → 2. Configure Che to use the Custom Plugin Registry).
-
-
Using Linux operating system:
-
Podman and NodeJS version 18.20.3 or higher should be installed in the system.
-
Download or fork and clone the plugin registry repository.
-
For each extension that you need to add or remove, edit the
openvsx-sync.json
file:-
To add extensions, add the publisher, name and extension version to the
openvsx-sync.json
file. -
To remove extensions, remove the publisher, name and extension version from the
openvsx-sync.json
file. -
Use the following JSON syntax:
{ "id": "<publisher>.<name>", "version": "<extension_version>" }
-
If you have a closed-source extension or an extension developed only for internal use in your organization, you can add the extension directly from a
.vsix
file by using a URL accessible to your custom plugin registry container:{ "id": "<publisher>.<name>", "download": "<url_to_download_vsix_file>", "version": "<extension_version>" }
-
Read the Terms of Use for the Microsoft Visual Studio Marketplace before using its resources.
-
-
-
Build the plugin registry container image and publish it to a container registry such as quay.io:
-
$ ./build.sh -o <username> -r quay.io -t custom
-
$ docker push quay.io/<username/plugin_registry:custom>
-
-
Edit the
CheCluster
custom resource in your organization’s cluster to point to the image (for example, on quay.io) and save the changes:spec: components: pluginRegistry: deployment: containers: - image: quay.io/<username/plugin_registry:custom> openVSXURL: ''
-
-
-
Check that the
plugin-registry
pod has restarted and is running. -
Restart the workspace and check the available extensions in the Extensions view of the workspace IDE.