Skip to main content

Jenkins Python Client

Project description

Unit Test Integration Test CodeQL codecov PyPI PyPI - Python Version PyPI - Wheel Documentation Status GitHub

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

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-2.0.3.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

api4jenkins-2.0.3-py3-none-any.whl (29.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: api4jenkins-2.0.3.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for api4jenkins-2.0.3.tar.gz
Algorithm Hash digest
SHA256 f31bbeac48ef6d2c795c20cdca8ebafc34b8d92b09f1287c66484c42196bc514
MD5 d4dc8b829729970bf4a8db4e49e71e84
BLAKE2b-256 9d6c7807330e834e24aabf7fd34eb3c3fc846a2dfe61e5ef026844d71bd28355

See more details on using hashes here.

File details

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

File metadata

  • Download URL: api4jenkins-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 29.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for api4jenkins-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8cd23678f077ba4df47eafe13866ae63db1a50ee29176f2d658564d042154aa0
MD5 e96456f48166b49322469b898a5e8a1f
BLAKE2b-256 1197990f7e5c836db2ab86d6cd9eabd279a654b0966762bc47737840d8302f95

See more details on using hashes here.

Supported by

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