Python API for managing jobs and nodes in a Jenkins CI instance
Go to file
Sorin Sbarnea 20fd8c40cf
Added pypy-dev to bindep.txt
Fixes failure to install some packages on pypy
due to missing python headers.

Change-Id: I4d693e3119bfcf5db4999b640c030f9389e53d27
2018-06-16 21:17:34 +01:00
doc Use proper code highlight in docs 2018-04-17 10:27:59 +02:00
jenkins Ensure timeout exceptions are re-raised during auth attempts 2018-06-01 10:48:54 +01:00
tests Selectively mock requests_kerberos import 2018-06-01 15:07:12 +01: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 Update .gitreview for new namespace 2015-10-17 22:37:18 +00:00
.stestr.conf Replace testr with stestr 2018-04-04 23:25:21 +01:00
.zuul.yaml enable cross testing with jenkins-job-builder 2018-04-13 16:49:18 +01:00
COPYING Added tags 2011-06-30 17:54:54 +01:00 Add 2014-08-22 11:29:08 -05:00
README.rst README: mention #openstack-jjb channel 2018-05-21 09:57:07 -06: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 py35 to tox envlist 2017-03-10 17:52:14 +08:00 Use pbr, pep8 checks & fixes, add "doc" tox target 2014-07-02 14:12:31 -07:00
test-requirements.txt Revert "Do not require requests-kerberos for tests" 2018-05-30 16:51:44 +00:00
tox.ini enable cross testing with jenkins-job-builder 2018-04-13 16:49:18 +01: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

We ask that all code submissions be flake8 clean. The easiest way to do that is to run tox before submitting code for review in Gerrit. It will run flake8 in the same manner as the automated test suite that will run on proposed patchsets.

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.↩︎