Skip to main content

Jenkins REST API client

Project description

Build Status Coverage Status

api4jenkins

api4jenkins is an object oriented Python project that provides access to the Jenkins Remote access API programmatically. It assiciates/constructs python class/object with Jenkins's items and JSON API. It provides but not limits functionalities to control Job, Build, Node, View, Credential, BuildQueue, Plugins and System:

  • get/delete/create/move/rename/copy/build/enable/disable job or folder, iterate children jobs with depth, folder based views/credentials functionalities
  • get/iterate builds of project, stop/term/kill build, get progressive console output.
  • get/delete/create/iterate views for jenkins or folder. add/remove jobs to/from view.
  • get/delete/create/iterate credentials for system or folder.
  • get/delete/create/iterate nodes, run groovy script on node.
  • get/cancel/iterate queue item, get job/build from queue item.
  • restart/safe restart/quiet down/cancel quiet down/run groovy script for master
  • get item status(int, bool, str) by accessing attribute of python object.
  • install/uninstall/iterate plugin, check installation status, change update site and set proxy

Installation

pip install api4jenkins

Quick start

>>> from api4jenkins import Jenkins
>>> j = Jenkins('http://127.0.0.1:8080/', auth=('admin', 'admin'))
>>> j.version
'2.176.2'
>>> xml = """<?xml version='1.1' encoding='UTF-8'?>
... <project>
...   <builders>
...     <hudson.tasks.Shell>
...       <command>echo $JENKINS_VERSION</command>
...     </hudson.tasks.Shell>
...   </builders>
... </project>"""
>>> j.create_job('freestylejob', xml)
>>> job = j.get_job('freestylejob')
>>> print(job)
<FreeStyleProject: http://127.0.0.1:8080/job/freestylejob/>
>>> print(job.parent)
<Jenkins: http://127.0.0.1:8080/>
>>> print(job.jenkins)
<Jenkins: http://127.0.0.1:8080/>
>>> import time
>>> item = job.build()
>>> while not item.get_build():
...      time.sleep(1)
>>> build = item.get_build()
>>> print(build)
<FreeStyleBuild: http://127.0.0.1:8080/job/freestylejob/1/>
>>> for line in build.progressive_output():
...     print(line)
...
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/freestylejob
[freestylejob] $ /bin/sh -xe /tmp/jenkins2989549474028065940.sh
+ echo $JENKINS_VERSION
2.176.2
Finished: SUCCESS
>>> build.building
False
>>> build.result
'SUCCESS'

More usage can be found in Documentation

Contributing

Feel free to open pull requests to contribute your code or idea

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

api4jenkins-1.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

api4jenkins-1.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file api4jenkins-1.0.tar.gz.

File metadata

  • Download URL: api4jenkins-1.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3

File hashes

Hashes for api4jenkins-1.0.tar.gz
Algorithm Hash digest
SHA256 1937db8fdbaded8444824af4a8fc04b501e81e0da25bcf83ab0160e37b37b942
MD5 a44e1da65842233d028c7e9157834135
BLAKE2b-256 a5e76ea5cd5269aa76ddbf4dab47b0e54974adad6cf789609ae441831c695549

See more details on using hashes here.

File details

Details for the file api4jenkins-1.0-py3-none-any.whl.

File metadata

  • Download URL: api4jenkins-1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3

File hashes

Hashes for api4jenkins-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e974523a8f9e0a6b80eeea3a04a9602e155d717f419f0cfdae6965da0464016
MD5 13555136bceff437bc4a51a7cf598386
BLAKE2b-256 9651e591dafded2fbcc19f327184070983120ffcd670d5633f7a8ddcb12cbdbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page