Jenkins Python Client¶
Python3 client library for Jenkins API.
Features¶
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.
>>> 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'
Contents:
- Installation
- Release History
- 1.15.0 (2023-08-30)
- 1.14.1 (2023-07-24)
- 1.14 (2022-11-28)
- 1.13 (2022-10-01)
- 1.12 (2022-08-04)
- 1.11 (2022-07-08)
- 1.10 (2022-05-17)
- 1.9.1 (2022-03-29)
- 1.9 (2022-03-12)
- 1.8 (2021-12-27)
- 1.7 (2021-10-09)
- 1.6 (2021-08-01)
- 1.5.1 (2021-05-11)
- 1.5 (2021-04-29)
- 1.4 (2021-03-31)
- 1.3 (2021-02-28)
- 1.2 (2021-01-31)
- 1.1 (2020-12-31)
- 1.0 (2020-11-15)
- Examples
- API reference
Jenkins
BitbucketSCMNavigator
ExternalJob
Folder
FreeStyleProject
GitHubSCMNavigator
IvyModuleSet
Job
MatrixProject
MavenModuleSet
MultiJobProject
OrganizationFolder
PipelineMultiBranchDefaultsProject
Project
WorkflowJob
WorkflowMultiBranchProject
Build
FreeStyleBuild
MatrixBuild
WorkflowRun
PendingInputAction
BlockedItem
BuildableItem
LeftItem
Queue
QueueItem
WaitingItem
Credential
Credentials
Domain
AnkaCloudComputer
DockerComputer
EC2Computer
KubernetesComputer
MasterComputer
Node
Nodes
SlaveComputer
Plugin
PluginsManager
UpdateCenter
AllView
Dashboard
ListView
MyView
NestedView
SectionedView
View
Views
System
ApiToken
User
Users
Coverage
CoverageElement
CoverageReport
CoverageResult
CoverageTrend
CoverageTrends
GetMixIn
ResultBase
TestCase
TestReport
TestSuite
Item
append_slash()
camel()
new_item()
snake()
ActionsMixIn
ConfigurationMixIn
DeletionMixIn
DescriptionMixIn
EnableMixIn
Parameter
RawJsonMixIn
RunScriptMixIn
Requester()
AuthenticationError
BadRequestError
ItemExistsError
ItemNotFoundError
JenkinsAPIException
ServerError
UnsafeCharacterError