
Python调用Google Bard API 完整指南
Jenkins API 是一个强大的工具,允许用户通过编程方式与Jenkins进行交互。通过API,用户可以获取Jenkins平台的相关信息、触发构建、创建或删除作业等。Jenkins API采用REST架构设计,支持XML、JSON和Python等多种格式。本文将详细介绍如何使用Jenkins API来实现这些功能,涵盖从信息获取到构建触发的各个方面,帮助用户更好地集成和扩展Jenkins功能。
Jenkins API 是一个强大的工具,允许开发者通过 REST 架构获取 Jenkins 平台的信息、触发构建,以及创建和删除 job,这使得 Jenkins 在连续集成和交付中具备了很强的扩展性。Jenkins API 支持三种主要格式:XML API、JSON API 和 Python API。
通过在 URL 后添加 /api/xml
,用户可以获取 XML 格式的数据。在此基础上,可以使用 XPath 语法过滤数据,例如读取测试结果或用例总数。深度控制和树形参数也可以用于精细化数据提取。
JSON API 返回数据以 JSON 格式展示,支持深度参数和树形参数来筛选特定信息。在请求 URL 后添加 /api/json
即可获取。
Jenkins API 采用 REST 架构,支持常用的 REST API 请求方法,如 POST、GET 和 DELETE。下面是一些获取 job 构建信息的 API 示例:
$ curl -k --silent -L --user 用户名:API Token JENKINS_URL/job/JOB_NAME
通过 POST 请求可以触发 Jenkins Job 的构建。
$ curl -k --silent -L -X POST --USER admin:API_TOKEN http://192.168.30.8:8080/job/RF-Pipeline-Demo/build
import requests
url = "http://192.168.30.8:8080/job/RF-Pipeline-Demo/build"
username = "admin"
api_token = "API_TOKEN"
res = requests.post(url, auth=(username, api_token), verify=False)
对于需要参数化构建的 Jenkins Job,可以通过插件支持参数化触发。
$ curl -k --silent -L -X POST --data param1=1 --data param2=2 --user admin:API_TOKEN http://192.168.30.8:8080/job/RF-Pipeline-Demo/buildWithParameters
import requests
jenkins_params = {'param1': 'value1', 'param2': 'value2'}
url = "http://192.168.30.8:8080/job/RF-Pipeline-Demo/buildWithParameters"
username = "admin"
api_token = "API_TOKEN"
res = requests.post(url, auth=(username, api_token), params=jenkins_params, verify=False)
通过 POST 请求可以执行删除操作,比如删除某次构建或整个 job。此外,还可以启用或禁用指定的 job。
Python 提供了多个库来简化 Jenkins API 的使用,比如 JenkinsAPI。下列代码展示了如何使用 JenkinsAPI 库来获取 Jenkins 的版本信息。
from jenkinsapi.jenkins import Jenkins
class JenkinsApiDemo:
def __init__(self, job_name):
self.jenkins_url = 'http://192.168.30.8:8080'
self.jenkins_server = Jenkins(self.jenkins_url, username='admin', password='admin', useCrumb=True)
def get_jenkins_version(self):
return self.jenkins_server.version
jk = JenkinsApiDemo('RF-Pipeline-Demo')
print(jk.get_jenkins_version())
一个简单的 Jenkins API 使用示例:触发构建并获取构建结果。
$ curl -i -L -X POST --USER admin:API_TOKEN http://192.168.168.228:8080/view/demo/job/PipelineDemo/build
根据响应数据,可以获取 queue number,然后通过 Jenkins API 进一步查询构建状态和结果。
/api/xml
,用户可以获取 XML 格式的数据。可以使用 XPath 语法来过滤数据,例如读取测试结果或用例总数。深度控制和树形参数也可以用于精细化数据提取。$ curl -k --silent -L -X POST --USER admin:API_TOKEN http://192.168.30.8:8080/job/RF-Pipeline-Demo/build
也可以使用 Python 的 requests 库来发送 POST 请求以触发构建。
答:可以使用 JenkinsAPI 库来简化 Jenkins API 的使用。以下代码展示了如何获取 Jenkins 的版本信息:
from jenkinsapi.jenkins import Jenkins
class JenkinsApiDemo:
def __init__(self, job_name):
self.jenkins_url = 'http://192.168.30.8:8080'
self.jenkins_server = Jenkins(self.jenkins_url, username='admin', password='admin', useCrumb=True)
def get_jenkins_version(self):
return self.jenkins_server.version
jk = JenkinsApiDemo('RF-Pipeline-Demo')
print(jk.get_jenkins_version())