Jenkins Python Client¶
Python3 client library for Jenkins API.
Features¶
Provides
sync
andasync
APIsObject oriented, each Jenkins item has corresponding class, easy to use and extend
Base on
api/json
, easy to query/filter attribute of itemSetup 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 = """<?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())
Contents:
- Installation
- Release History
- 2.0.2 (2023-11-06)
- 2.0.1 (2023-10-31)
- 2.0.0 (2023-10-19)
- 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
AsyncJenkins
Jenkins
AsyncBitbucketSCMNavigator
AsyncExternalJob
AsyncFolder
AsyncFreeStyleProject
AsyncGitHubSCMNavigator
AsyncIvyModuleSet
AsyncJob
AsyncMatrixProject
AsyncMavenModuleSet
AsyncMultiJobProject
AsyncOrganizationFolder
AsyncPipelineMultiBranchDefaultsProject
AsyncProject
AsyncWorkflowJob
AsyncWorkflowMultiBranchProject
BitbucketSCMNavigator
ExternalJob
Folder
FreeStyleProject
GitHubSCMNavigator
IvyModuleSet
Job
MatrixProject
MavenModuleSet
MultiJobProject
NameMixIn
OrganizationFolder
PipelineMultiBranchDefaultsProject
Project
WorkflowJob
WorkflowMultiBranchProject
AsyncBuild
AsyncFreeStyleBuild
AsyncMatrixBuild
AsyncWorkflowRun
Build
FreeStyleBuild
MatrixBuild
WorkflowRun
AsyncPendingInputAction
PendingInputAction
AsyncBlockedItem
AsyncBuildableItem
AsyncLeftItem
AsyncQueue
AsyncQueueItem
AsyncWaitingItem
BlockedItem
BuildableItem
LeftItem
Queue
QueueItem
WaitingItem
AsyncCredential
AsyncCredentials
AsyncDomain
Credential
Credentials
Domain
AsyncDockerComputer
AsyncEC2Computer
AsyncIterBuildingBuildsMixIn
AsyncKubernetesComputer
AsyncMasterComputer
AsyncNode
AsyncNodes
AsyncSlaveComputer
DockerComputer
EC2Computer
IterBuildingBuildsMixIn
KubernetesComputer
MasterComputer
MasterComputerMixIn
Node
Nodes
SlaveComputer
AsyncPlugin
AsyncPluginsManager
AsyncUpdateCenter
Plugin
PluginsManager
UpdateCenter
AllView
AsyncAllView
AsyncDashboard
AsyncListView
AsyncMyView
AsyncNestedView
AsyncSectionedView
AsyncView
AsyncViews
Dashboard
ListView
MyView
NestedView
SectionedView
View
Views
AsyncSystem
System
ApiToken
AsyncUser
AsyncUsers
User
Users
AsyncCoverageReport
AsyncCoverageResult
AsyncCoverageTrends
AsyncGetMixIn
AsyncTestReport
Coverage
CoverageElement
CoverageReport
CoverageResult
CoverageTrend
CoverageTrends
GetMixIn
ResultBase
TestCase
TestReport
TestSuite
AsyncItem
BaseItem
Item
append_slash()
camel()
new_item()
snake()
ActionsMixIn
AsyncActionsMixIn
AsyncConfigurationMixIn
AsyncDeletionMixIn
AsyncDescriptionMixIn
AsyncEnableMixIn
AsyncRawJsonMixIn
AsyncRunScriptMixIn
ConfigurationMixIn
DeletionMixIn
DescriptionMixIn
EnableMixIn
Parameter
RawJsonMixIn
RunScriptMixIn
UrlMixIn
async_check_response()
async_log_request()
check_response()
log_request()
new_async_http_client()
new_http_client()
AuthenticationError
BadRequestError
ItemExistsError
ItemNotFoundError
JenkinsAPIException
ServerError
UnsafeCharacterError