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?
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.
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:
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.
Had a discussion about similar topic today:
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
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
Thanks everyone! The information present in this thread will really help us automate the plugin release.
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.
Hello Apoorva,
I hope you've already discovered it, but that is a successful response at the moment.
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?
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
```
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