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

Uploaded Source

Built Distribution

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

api4jenkins-2.1.0-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: api4jenkins-2.1.0.tar.gz
  • Upload date:
  • Size: 25.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for api4jenkins-2.1.0.tar.gz
Algorithm Hash digest
SHA256 4dd09ed06c86cff7bdcdd832fc30d7d9673395e53e32cf9db257c5f977181442
MD5 d3d363c73dfee82b083f66dd1e4ff5da
BLAKE2b-256 b8837cd26c65a3e390ec735f71a6010c58b1e4802fdf26c3cd47b41824d5aea0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: api4jenkins-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for api4jenkins-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37a8cac9d864403ebd3dd567f231d0e6268d98571b9d0e66c6c0ecc4ebb02949
MD5 8c412c0d5099faee32bff598bce77238
BLAKE2b-256 35eed819bcb4b395dda5e0adc05f2dcc9fe432a4cd40889f7f8dae2f68b08ad0

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