Jenkins API 使用
介绍
Jenkins 是一个广泛使用的持续集成和持续交付(CI/CD)工具,它提供了强大的 API 来帮助开发者自动化任务、集成外部工具以及扩展 Jenkins 的功能。Jenkins API 允许你通过 HTTP 请求与 Jenkins 服务器进行交互,从而执行各种操作,如触发构建、获取构建状态、管理作业等。
本文将逐步介绍如何使用 Jenkins API,并提供实际的代码示例和应用场景,帮 助你快速上手。
Jenkins API 基础
Jenkins API 主要通过 RESTful 接口提供,支持 JSON 和 XML 格式的响应。你可以使用任何支持 HTTP 请求的编程语言或工具来与 Jenkins API 进行交互。
认证
在访问 Jenkins API 之前,通常需要进行认证。Jenkins 支持多种认证方式,包括基本认证(Basic Authentication)和 API 令牌(API Token)。
基本认证
基本认证是最简单的认证方式,你需要在 HTTP 请求头中添加 Authorization
字段,值为 Basic base64(username:password)
。
curl -u username:password http://jenkins.example.com/api/json
API 令牌
API 令牌是一种更安全的认证方式。你可以在 Jenkins 的用户设置中生成 API 令牌,然后在请求中使用它。
curl -u username:api_token http://jenkins.example.com/api/json
获取 Jenkins 信息
你可以通过访问 /api/json
端点来获取 Jenkins 的基本信息。
curl -u username:api_token http://jenkins.example.com/api/json
响应将是一个 JSON 对象,包含 Jenkins 的版本、作业列表、视图等信息。
{
"assignedLabels": [],
"mode": "NORMAL",
"nodeDescription": "the master Jenkins node",
"nodeName": "",
"numExecutors": 2,
"description": null,
"jobs": [
{
"name": "example-job",
"url": "http://jenkins.example.com/job/example-job/",
"color": "blue"
}
],
"overallLoad": {},
"primaryView": {
"name": "All",
"url": "http://jenkins.example.com/"
},
"quietingDown": false,
"slaveAgentPort": 0,
"unlabeledLoad": {},
"useCrumbs": false,
"useSecurity": true,
"views": [
{
"name": "All",
"url": "http://jenkins.example.com/"
}
]
}
使用 Jenkins API 执行常见操作
触发构建
你可以通过向作业的 build
端点发送 POST 请求来触发构建。
curl -X POST -u username:api_token http://jenkins.example.com/job/example-job/build
如果你想传递参数给构建,可以使用 buildWithParameters
端点。
curl -X POST -u username:api_token http://jenkins.example.com/job/example-job/buildWithParameters \
--data-urlencode "param1=value1" \
--data-urlencode "param2=value2"