IDE Services 2024.4 Help

Private plugin repository

IDE Services comes with a plugin repository for IntelliJ-based plugins, streamlining the process of building and delivering plugins within your organization.

By default, IDE Services utilizes the IntelliJ plugin repository and automatically distributes the configuration to all IDEs. IDE Services offers several ways to upload a new plugin:

  • Upload manually using the Web UI

  • Upload via HTTP (for example, using cURL or similar HTTP-based methods)

  • Upload from Gradle via IntelliJ Plugin SDK

The IDE Services plugin repository comes with a secure way to manage access to specific plugins by uploading them to custom channels. Channels serve as a means to control plugin distribution, making it convenient to upload and test your company-specific plugins.

The default channel name is Stable. You can use any custom names for your channels.

Upload plugins

Upload plugins manually

  1. In the Web UI, open the Plugins page.

    Manage available plugins
  2. Click Upload plugin.

  3. If necessary, select plugin channels in the Channel field.

  4. (Optional) Configure the expiration date for the plugin versions you want to upload. After this date, IDE Services will remove these plugin versions from the repository.

  5. Drag one or several .zip files with the plugins you want to upload to the dedicated area. Alternatively, click the drag and drop area to select plugins in your file system.

    Upload a plugin from your file system

Automate plugin distribution

To set up continuous delivery of plugins in IDE Services:

  • Create a new automation token to upload plugins.

  • Configure a CI tool of your choice to upload fresh plugin binaries to the IDE Services Server.

  • Configure auto-installed plugins to install plugins automatically on every developer machine.

Publish a plugin via cURL

Use the following cURL command to upload a plugin to the IDE Services Server:

curl -i \ -H 'Authorization: Automation <permanentToken>' \ -F file=@<path to the .zip file with the plugin> \ -F channel=Stable \ https://HOST_NAME/api/plugins

Publish a plugin via Gradle intelliJ Plugin

Use the Gradle IntelliJ Plugin to upload custom plugins to the IDE Services Server.

In your build.gradle.kts file, configure the publishPlugin task:

plugins { id("org.jetbrains.intellij") version "1.16.0" } tasks { publishPlugin { toolboxEnterprise.set(true) host.set("https://HOST_NAME") token.set(<permanentToken>) // An automation token that enables you to perform HTTP requests to the IDE Services API. channels.set(listOf("CHANNEL_NAME")) // If no value is provided, the default 'Stable' channel is used. } }

Manage plugins

  • On the Plugins page, use the search field to find the necessary plugin by its name or vendor name.

    Search for plugins

Configure plugin details

  • To configure an existing plugin, click its name in the table.

    Open the plugin editor

    IDE Services will open a page with plugin details.

    Plugin details

Manage plugin versions

You can upload and distribute multiple versions of the same plugin. To manage plugin versions, click the link with the plugin name to open the page with plugin details.

Manage plugin versions
  1. Use the Upload new plugin version button to upload another plugin version. This functionality works the same way as described in Upload plugins.

  2. Select one or multiple plugin versions using checkboxes and click Remove N versions to delete them.

  3. Use the Download icon to download a particular plugin version.

  4. Use the link icon to copy the plugin installation link.

  5. Use the Bucket icon to remove a particular plugin version.

  6. Use the Plus icon in the Channels column to add a plugin version to a particular channel.

  7. Use links in the Expiration date column to configure the expiration date for a particular plugin version.

Plugin channel and version logic

An auto-installed plugin can be available in several channels. In this case, the IDE will look for the highest plugin version from its available channels. Here's a more detailed explanation of how this works:

  • If the plugin is currently in the Beta channel, the IDE will receive the highest version from both Stable and Beta channels and will prompt the user to update.

  • If the plugin is currently in the Beta channel, but the higher version is available in the Gamma channel, the IDE will not prompt the user to update.

    This is because the Gamma channel falls outside the scope of available channels for this plugin.

  • If the plugin is currently in the Beta channel and is not forced, the user can manually switch to the Stable channel.

    In this case, they will start receiving the highest plugin version only from the Stable channel, and the Beta channel will fall outside the scope.

Launch the consistency check

IDE Services originally hosts plugins in the S3 storage. To provide a smoother experience, some indexes have to be present in the PostgreSQL database. If you notice any inconsistency in the local plugin repository, try synchronizing these two types of storage. To launch the consistency check, click More options and select the Synchronize plugins option.

Synchronize plugins

The action runs in a non-blocking manner, therefore, the results will not be available instantly. You can check the action progress in the IDE Services logs.

View plugin update history

You can check all the changes made to the plugin repository from the Plugins page of the Web UI. This includes operations with channels, uploading of new plugins or plugin versions, and so on. To access the history of changes, click More options and select the View update history option.

See plugin

You can use the search field to filter the history and display only the changes made in a particular plugin.

Audit logs
Last modified: 06 November 2024