Python API for managing jobs and nodes in a Jenkins CI instance
Go to file
Jeff Schroeder 9bf7f81509
Fix reconfig_credential() to send the xml data
Previously, reconfig_credential() passed empty `data` with
`Content-Length: 0` to the credentials configuration rather
than the credentials data.

This patch fixes the issue by passing the config_xml data to
the configuration API to properly update the credential.

Change-Id: Idef50f5a31d55991698b6217f55f15a9308b8526
2019-12-16 09:32:50 -05:00
doc Adopt use of pre-commit hooks 2018-06-22 13:37:30 +01:00
jenkins Fix reconfig_credential() to send the xml data 2019-12-16 09:32:50 -05:00
tests Fix reconfig_credential() to send the xml data 2019-12-16 09:32:50 -05:00
.coveragerc Use standard cover setup 2016-12-20 22:17:24 +01:00
.gitignore Replace testr with stestr 2018-04-04 23:25:21 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:49:46 +00:00
.pre-commit-config.yaml Adopt use of pre-commit hooks 2018-06-22 13:37:30 +01:00
.stestr.conf Replace testr with stestr 2018-04-04 23:25:21 +01:00
.zuul.yaml Update docs building job 2019-09-29 18:05:55 +02:00
COPYING Added tags 2011-06-30 17:54:54 +01:00 Add 2014-08-22 11:29:08 -05:00
README.rst Adopt use of pre-commit hooks 2018-06-22 13:37:30 +01:00
bindep.txt Added pypy-dev to bindep.txt 2018-06-16 21:17:34 +01:00
requirements.txt Migration to using requests 2018-02-12 11:16:54 +00:00
setup.cfg Add Python 3.6 classifier to setup.cfg 2018-11-29 09:40:08 +00:00 Use pbr, pep8 checks & fixes, add "doc" tox target 2014-07-02 14:12:31 -07:00
test-requirements.txt Remove pin on mock module 2019-05-23 11:38:13 +00:00
tox.ini add python 3.6 unit test job 2018-11-28 07:04:07 +00:00



Python Jenkins is a python wrapper for the Jenkins REST API which aims to provide a more conventionally pythonic way of controlling a Jenkins server. It provides a higher-level API containing a number of convenience functions.

We like to use python-jenkins to automate our Jenkins servers. Here are some of the things you can use it for:

  • Create new jobs
  • Copy existing jobs
  • Delete jobs
  • Update jobs
  • Get a job's build information
  • Get Jenkins master version information
  • Get Jenkins plugin information
  • Start a build on a job
  • Create nodes
  • Enable/Disable nodes
  • Get information on nodes
  • Create/delete/reconfig views
  • Put server in shutdown mode (quiet down)
  • List running builds
  • Delete builds
  • Wipeout job workspace
  • Create/delete/update folders1
  • Set the next build number2
  • Install plugins
  • and many more..

To install:

$ sudo python install

Online documentation:


Bug report:



Patches are submitted via Gerrit at:

Please do not submit GitHub pull requests, they will be automatically closed.

The python-jenkins developers communicate in the #openstack-jjb channel on Freenode's IRC network.

More details on how you can contribute is available on our wiki at:

Writing a patch

Be sure that you lint code before created an code review. The easiest way to do this is to install git pre-commit hooks.

Installing without

Then install the required python packages using pip:

$ sudo pip install python-jenkins


  1. The free Cloudbees Folders Plugin provides support for a subset of the full folders functionality. For the complete capabilities you will need the paid for version of the plugin.↩︎

  2. The Next Build Number Plugin provides support for setting the next build number.↩︎