# Python Jenkins

# README

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
- Create/delete/update folders [1]
- Set the next build number [2]
- Install plugins
- and many more..

To install:

    $ sudo python setup.py install

Online documentation:

- http://python-jenkins.readthedocs.org/en/latest/

## Developers

Bug report:

- https://bugs.launchpad.net/python-jenkins

Repository:

- https://git.openstack.org/cgit/openstack/python-jenkins

Cloning:

- git clone https://git.openstack.org/openstack/python-jenkins

Patches are submitted via Gerrit at:

- https://review.openstack.org/

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

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

- http://docs.openstack.org/infra/manual/developers.html

## 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 setup.py

Then install the required python packages using pip:

    $ sudo pip install python-jenkins

Footnotes

[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.

# Contents

- API reference
- Using Python-Jenkins
  - Example 1: Get version of Jenkins
  - Example 2: Logging into Jenkins using kerberos
  - Example 3: Working with Jenkins Jobs
  - Example 4: Working with Jenkins Views
  - Example 5: Working with Jenkins Plugins
  - Example 6: Working with Jenkins Nodes
  - Example 7: Working with Jenkins Build Queue
  - Example 8: Working with Jenkins Cloudbees Folders
  - Example 9: Updating Next Build Number
  - Example 9: Working with Build Promotions
  - Example 10: Waiting for Jenkins to be ready
- Installing
  - Documentation
  - Unit Tests
  - Test Coverage

# Indices and tables

- Index
- Module Index
- Search Page