Skip to content

Instantly share code, notes, and snippets.

@jedi4ever
Created April 1, 2011 13:06
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jedi4ever/898114 to your computer and use it in GitHub Desktop.
Save jedi4ever/898114 to your computer and use it in GitHub Desktop.
update jenkins Updatecenter from CLI
$ java -jar jenkins-cli.jar -s http://localhost:9000 install-plugin findbugs
findbugs is neither a valid file, URL, nor a plugin artifact name in the update center
No update center data is retrieved yet from: http://updates.jenkins-ci.org/update-center.json
findbugs looks like a short plugin name. Did you mean 'null'?
# Specifying a full URL works!
$ java -jar jenkins-cli.jar -s http://localhost:9020 install-plugin http://updates.jenkins-ci.org/download/plugins/AdaptivePlugin/0.1/AdaptivePlugin.hpi
# Get the update center ourself
$ wget -O default.json http://updates.jenkins-ci.org/update-center.json
# remove first and last line javascript wrapper
# Now push it to the update URL
curl -X POST -H "Accept: application/json" -d @default.json http://localhost:9020/updateCenter/byId/default/postBack --verbose
* About to connect() to localhost port 9020 (#0)
* Trying ::1... connected
* Connected to localhost (::1) port 9020 (#0)
> POST /updateCenter/byId/default/postBack HTTP/1.1
> User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3
> Host: localhost:9020
> Accept: application/json
> Content-Length: 253822
> Content-Type: application/x-www-form-urlencoded
> Expect: 100-continue
>
* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Server: Winstone Servlet Engine v0.9.10
< Content-Type: text/plain;charset=UTF-8
< Connection: Close
< Date: Fri, 01 Apr 2011 13:03:41 GMT
< X-Powered-By: Servlet/2.5 (Winstone/0.9.10)
# Now it finds the plugin by name
$ java -jar jenkins-cli.jar -s http://localhost:9020 install-plugin findbugs
Installing findbugs from update center
$ java -jar jenkins-cli.jar -s http://localhost:9020 safe-restart
hudson.lifecycle.RestartNotSupportedException: Restart is not supported on Mac OS X
$ java -jar jenkins-cli.jar -s http://localhost:9020 reload-configuration
@ChastinaLi
Copy link

Why do you need to update UpdateCenter?

@sayantandas
Copy link

sayantandas commented Feb 10, 2017

This does not work behind a proxy. I always end up getting WARNING: No valid crumb was included in request for /updateCenter/byId/default/postBack. Returning 403.

@tomdev
Copy link

tomdev commented Jun 7, 2017

@sayantandas: This does not work behind a proxy. I always end up getting WARNING: No valid crumb was included in request for /updateCenter/byId/default/postBack. Returning 403.

I don't think that's related to a proxy, rather that Jenkins' CSRF protection is enabled. You should add the crumb as header as well: https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

@jimbo8098
Copy link

This is still helping people (me). Although it wasn't a direct fix, it made sure I was being sane.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment