.. api4jenkins documentation master file, created by sphinx-quickstart on Mon Dec 16 20:16:12 2019. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Jenkins Python Client ================================================= .. image:: https://img.shields.io/github/license/joelee2012/api4jenkins :target: https://pypi.org/project/api4jenkins/ .. image:: https://img.shields.io/pypi/wheel/api4jenkins :target: https://pypi.org/project/api4jenkins/ .. image:: https://img.shields.io/pypi/v/api4jenkins :target: https://pypi.org/project/api4jenkins/ .. image:: https://img.shields.io/pypi/pyversions/api4jenkins :target: https://pypi.org/project/api4jenkins/ `Python3 `_ client library for `Jenkins API `_. Features -------- - Provides ``sync`` and ``async`` APIs - Object oriented, each Jenkins item has corresponding class, easy to use and extend - Base on ``api/json``, easy to query/filter attribute of item - Setup relationship between class just like Jenkins item - Support api for almost every Jenkins item - Pythonic - Test with latest `Jenkins LTS `_ Quick start ---------------------------------------- Here is an example to create and build job, then monitor progressive output until it's done. Sync example:: >>> from api4jenkins import Jenkins >>> client = Jenkins('http://127.0.0.1:8080/', auth=('admin', 'admin')) >>> client.version '2.176.2' >>> xml = """ ... ... ... ... echo $JENKINS_VERSION ... ... ... """ >>> client.create_job('path/to/job', xml) >>> import time >>> item = client.build_job('path/to/job') >>> while not item.get_build(): ... time.sleep(1) >>> build = item.get_build() >>> 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' Async example:: import asyncio import time from api4jenkins import AsyncJenkins async main(): client = AsyncJenkins('http://127.0.0.1:8080/', auth=('admin', 'admin')) print(await client.version) xml = """ echo $JENKINS_VERSION """ await client.create_job('job', xml) item = await client.build_job('job') while not await item.get_build(): time.sleep(1) build = await item.get_build() async for line in build.progressive_output(): print(line) print(await build.building) print(await build.result) asyncio.run(main()) .. toctree:: :maxdepth: 2 :caption: Contents: user/install user/example user/api Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`