API for publishing plugin

Hi,

We are currently publishing new versions of our plugin manually by uploading the zip file. We want to automate this process using GoCD.
Are there any APIs for publishing plugins that we can use?

9 comments
Comment actions Permalink

Had a discussion about similar topic today:

@liias we're using plugins repo rest api and https://github.com/JetBrains/plugin-repository-rest-client
java -jar plugin-repository-rest-client-0.1.3-all.jar -host https://plugins.jetbrains.com -channel nightly -username username -password * -plugin 7083 -file Go.zip
liias 01:02
ah, cool. So I don't need any special rights to use nightly channel?
ignatov 01:02
you can download binaries from bintray: https://bintray.com/jetbrains/plugin-repository-rest-client/plugin-repository-rest-client/view
nope
liias 01:02
OK, thanks for the info
ignatov 01:03
also, you can ask @zolotov about https://github.com/JetBrains/gradle-intellij-plugin
in our plans it should provide an ability for uploading as well
liias 01:06

0
Comment actions Permalink

Hi,

I'm using Travid CI and it works very well. I have a rule that as soon as I tag a commit and push it to GitHub, the plugin is not only built and tested for errors, but it creates a release automatically.
To use this ci was one of the best ideas. It makes life a lot easier, because you can give pre-releases or testing-releases instantly to your users.

Cheers
Patrick

0
Comment actions Permalink

Hi,

You can send a POST request to https://plugins.jetbrains.com/plugin/uploadPlugin specifying userName, password, pluginId. Where pluginId - id of plugin on repository and it can be retrieved from plugin url. For example, for Go plugin it is 5047. curl command line template:

curl -k -i -F userName=<plugin author username> -F password=<plugin author password> -F pluginId=<id of plugin> -F file=@<path to plugin .jar/.zip file> https://plugins.jetbrains.com/plugin/uploadPlugin

0
Comment actions Permalink

Thanks everyone! The information present in this thread will really help us automate the plugin release.

0
Comment actions Permalink

Hello,

Just tried sending a POST request using curl:

curl -k -i -F userName=<username> -F password=<password> -F pluginId=7535 -F file=@<path_to_zip_file> https://plugins.jetbrains.com/plugin/uploadPlugin

But this says:

HTTP/1.1 100 Continue


HTTP/1.1 302 Moved Temporarily
Server: nginx
...

Any idea how to upload plugin to Jetbrains through CI? If someone else tried using above command and got it working, let me know how to get this working.

0
Comment actions Permalink

Hello Apoorva,

I hope you've already discovered it, but that is a successful response at the moment.

0
Comment actions Permalink

Hey All,

We want to publish nightly versions of our IntelliJ plugin. What should the API call look like?

By the way, is there any documentation available for the publishing API that we can refer to?

0
Comment actions Permalink

I am getting the following error which isn't very descriptive. Any clue? 

curl -k -i -F username="$USER" -F password="$PASS" -F pluginid=7412 -F file=dist/intellij-pants-plugin.jar https://plugins.jetbrains.com/plugin/uploadPlugin

```

HTTP/1.1 100 Continue

 

HTTP/1.1 404 Not Found

Server: nginx

Date: Wed, 30 Nov 2016 19:24:46 GMT

Transfer-Encoding: chunked

Connection: keep-alive

Set-Cookie: ccc=y68k0t; Expires=Mon, 29-Nov-2021 19:24:46 GMT

Set-Cookie: ccc=rjsi8y; Expires=Mon, 29-Nov-2021 19:24:46 GMT

```

0
Comment actions Permalink

issue resolved, but server isn't giving enough info. see https://github.com/JetBrains/plugin-repository-rest-client/issues/9

 

This is how I implemented the automation from travis ci, feel free to copy and pasta. https://github.com/pantsbuild/intellij-pants-plugin/blob/master/.travis.yml#L34-L35 using https://github.com/JetBrains/plugin-repository-rest-client

0

Please sign in to leave a comment.