IntelliJ Plugin Setup

Add this repository to IntelliJ so you can install and update private plugins directly from the IDE.

1
Open Plugin Repositories

Go to Settings / PreferencesPlugins → click the gear icon → Manage Plugin Repositories…

2
Add the repository URL

Click + and paste this URL:

https://plugin-repo-dp3.pages.dev/api/updatePlugins.xml
3
Install your plugin

Click OK, go to the Marketplace tab in Plugins, and search for your plugin name. It will appear alongside JetBrains plugins.

IntelliJ will automatically check for updates from this repository when you open the IDE.

Gradle Setup

Add the Maven repository and declare the dependency in your Gradle build files.

settings.gradle.kts
dependencyResolutionManagement {
  repositories {
    maven {
      url = uri("https://plugin-repo-dp3.pages.dev/maven")
    }
  }
}
build.gradle.kts
dependencies {
  implementation("com.example:mylibrary:1.0.0")
  // or for a specific commit build:
  implementation("com.example:mylibrary:1.2.0-a3f9c12")
}
Version format TAG-COMMITHASH (e.g. 1.2.0-a3f9c12) lets you pin to exact builds from CI without floating tags.

Maven Setup

pom.xml
<repositories>
  <repository>
    <id>plugin-repo</id>
    <url>https://plugin-repo-dp3.pages.dev/maven</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>com.example</groupId>
    <artifactId>mylibrary</artifactId>
    <version>1.0.0</version>
  </dependency>
</dependencies>

API Tokens

To authenticate CI/CD scripts, create an API token in the Admin dashboard under the API Tokens tab. Tokens come in two roles:

RolePermissions
uploaderUpload plugins and Maven artifacts
adminUpload + delete + edit + manage users and tokens

Three ways to pass the token:

Authentication methods
# Bearer token (recommended)
curl -H "Authorization: Bearer pr_upload_..." ...

# Basic auth (username ignored, token is the password)
curl -u "ci:pr_upload_..." ...

# Legacy header
curl -H "X-Admin-Token: pr_upload_..." ...

CI/CD — Publishing Plugins

Upload a plugin ZIP after building it. The ZIP must contain a JAR with META-INF/plugin.xml inside.

GitHub Actions
- name: Publish plugin
            run: |
              curl -X POST https://plugin-repo-dp3.pages.dev/api/upload \
                -H "Authorization: Bearer ${{ secrets.PLUGIN_REPO_TOKEN }}" \
                -F "file=@build/distributions/my-plugin-${{ github.ref_name }}.zip" \
                -F "changelog=${{ github.event.release.body }}"
Shell script
#!/bin/bash
          set -e

          TOKEN="${PLUGIN_REPO_TOKEN:?must be set}"
          ZIP="${1:?usage: publish.sh path/to/plugin.zip}"

          curl -fsS -X POST https://plugin-repo-dp3.pages.dev/api/upload \
            -H "Authorization: Bearer $TOKEN" \
            -F "file=@$ZIP" \
            -F "changelog=$(git log -1 --pretty=%B)"

          echo "Published successfully"

CI/CD — Publishing Maven Artifacts

Upload AARs or JARs with a version derived from Git tags and commit hashes for precise traceability.

GitHub Actions
- name: Publish AAR
  run: |
    VERSION="$(git describe --tags --abbrev=0)-$(git rev-parse --short HEAD)"
    curl -X POST https://plugin-repo-dp3.pages.dev/api/maven/upload \
      -H "Authorization: Bearer ${{ secrets.PLUGIN_REPO_TOKEN }}" \
      -F "file=@lib/build/outputs/aar/lib-release.aar" \
      -F "group=com.example" \
      -F "artifact=mylibrary" \
      -F "version=$VERSION" \
      -F "description=My Android library"
With dependencies
DEPS='[
  {"group":"com.squareup.okhttp3","artifact":"okhttp","version":"4.12.0","scope":"compile"},
  {"group":"org.jetbrains.kotlin","artifact":"kotlin-stdlib","version":"1.9.0","scope":"compile"}
]'

curl -X POST https://plugin-repo-dp3.pages.dev/api/maven/upload \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@lib-release.aar" \
  -F "group=com.example" \
  -F "artifact=mylibrary" \
  -F "version=1.0.0-abc1234" \
  -F "dependencies=$DEPS"

API Reference

MethodPathAuthDescription
GET/api/updatePlugins.xmlnoneIntelliJ plugin feed
GET/maven/**noneMaven repository (POM, AAR, JAR, checksums)
GET/api/download/:versionIdnoneDownload plugin version (increments download count)
POST/api/uploadtokenUpload plugin ZIP. Fields: file, changelog
POST/api/maven/uploadtokenPublish AAR/JAR. Fields: file, group, artifact, version, classifier, description, dependencies
DELETE/api/admin/plugins/:idadminDelete plugin and all versions
PATCH/api/admin/plugins/:idadminUpdate plugin metadata (name, description, vendor, icon_url)
DELETE/api/admin/versions/:idadminDelete a specific plugin version
DELETE/api/admin/maven/:idadminDelete a Maven artifact version
GET/api/admin/tokensadminList API tokens
POST/api/admin/tokensadminCreate API token. Body: {"name":"...","role":"uploader|admin"}
DELETE/api/admin/tokens/:idadminRevoke API token
POST/api/admin/usersadminCreate dashboard user. Body: {"username":"...","password":"...","role":"..."}
DELETE/api/admin/users/:idadminDelete dashboard user
PATCH/api/admin/users/:idadminUpdate user password or role