Jenkins Python Client
Python3 client library for Jenkins API which provides sync and async APIs.
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
Installation
python3 -m pip install api4jenkins
Quick start
Sync example:
>>> from api4jenkins import Jenkins
>>> client = Jenkins('http://127.0.0.1:8080/', auth=('admin', 'admin'))
>>> client.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>"""
>>> 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 = """<?xml version='1.1' encoding='UTF-8'?>
<project>
<builders>
<hudson.tasks.Shell>
<command>echo $JENKINS_VERSION</command>
</hudson.tasks.Shell>
</builders>
</project>"""
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())
Documentation
User Guide and API Reference is available on Read the Docs
Release files for api4jenkins 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| api4jenkins-2.1.0.tar.gz | 25.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| api4jenkins-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.7 kB
Release files / api4jenkins-2.1.0.tar.gz
| Download URL | api4jenkins-2.1.0.tar.gz |
|---|---|
| Size | 25.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4dd09ed06c86cff7bdcdd832fc30d7d9673395e53e32cf9db257c5f977181442
|
|
BLAKE2b-256 checksum How to use checksums |
b8837cd26c65a3e390ec735f71a6010c58b1e4802fdf26c3cd47b41824d5aea0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / api4jenkins-2.1.0-py3-none-any.whl
| Download URL | api4jenkins-2.1.0-py3-none-any.whl |
|---|---|
| Size | 29.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37a8cac9d864403ebd3dd567f231d0e6268d98571b9d0e66c6c0ecc4ebb02949
|
|
BLAKE2b-256 checksum How to use checksums |
35eed819bcb4b395dda5e0adc05f2dcc9fe432a4cd40889f7f8dae2f68b08ad0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|