Jenkins 的 REST API 可以从外部调用 Jenkins 实例,一些库例如 jenkins-rest 和 java-client-api 封装了相关 API,可以在 Java 中操作 Jenkins 。
本文参考 jenkins-rest 库将 API 根据获取的资源类型不同分为 6 个类别。
API类型 | 说明 |
---|---|
JobsAPI | 任务管理(任务信息、创建、修改) |
PluginManagerAPI | 插件管理(插件信息、安装插件) |
QueueAPI | 任务队列相关(队列状态) |
StatisticsAPI | Jenkins统计信息 |
CrumbIssuerAPI | 系统哈希值信息(用于防御CSRF攻击) |
SystemAPI | Jenkins系统状态(版本、路径) |
本文介绍其中 JobsAPI 。
其余 API 请见 Jenkins REST API 完全手册——下篇
- 术语定义
名词 | 说明 |
---|---|
job | 任务 |
payload | 在POST请求中提交的数据 |
{optionalFolderPath} | 可选参数:任务所在目录的路径 |
{name} | 必须参数:任务名称 |
- 注意:在 GET/POST 时需要附加 HTTP 认证才能访问 API
- 本文使用的数据结构可以在 jenkins-rest/domain 中查看详细定义
Jobs 相关 API
job-info 获取任务信息
GET http://127.0.0.1:8080/{optionalFolderPath}job/{name}/api/json
- 返回类型:JobInfo
字段 | 类型 | 说明 |
---|---|---|
description | String | 描述 |
name | String | 项目名称 |
url | boolean | 路径 |
buildable | String | 是否可构建 |
builds | List<BuildInfo> | 构建记录 |
lastBuild | BuildInfo | 上次构建记录 |
...... |
build-info 获取构筑信息
GET http://127.0.0.1:8080/{optionalFolderPath}job/{name}/{number}/api/json
- 返回类型:BuildInfo
字段 | 类型 | 说明 |
---|---|---|
artifacts | List<Artifact> | artifacts |
actions | Lis<Action> | actions |
building | boolean | 路径 |
description | String | 描述 |
...... |
create 使用 XML 文件创建任务
从 XML 文件中加载任务配置并创建任务
POST http://127.0.0.1:8080/{optionalFolderPath}createItem
- 参数
key | value |
---|---|
name | 任务名称 |
payload | XML配置文件 |
- 返回类型:RequestStatus
字段 | 类型 | 说明 |
---|---|---|
value | Boolean | |
errors | List<Error> |
get-config 获取任务配置文件
GET http://127.0.0.1:8080/{optionalFolderPath}job/{name}/config.xml
- 返回类型: String
update-config 更新任务配置文件
POST http://127.0.0.1:8080/{optionalFolderPath}job/{name}/config.xml
- 参数
字段 | 说明 |
---|---|
payload | XML配置文件 |
- 返回类型:Boolean
get-description 获取任务描述
GET http://127.0.0.1:8080/{optionalFolderPath}job/{name}/description
- 返回类型:String
set-description 设置任务描述
POST http://127.0.0.1:8080/{optionalFolderPath}job/{name}/description
- 参数
key | value |
---|---|
description | 描述 |
- 返回类型:Boolean
delete 删除任务
POST http://127.0.0.1:8080/{optionalFolderPath}job/{name}/doDelete
- 返回类型:RequestStatus
enable允许任务
POST http://127.0.0.1:8080/{optionalFolderPath}job/{name}/enable
- 返回类型:Boolean
disable 禁止任务
POST http://127.0.0.1:8080/{optionalFolderPath}job/{name}/disable
- 返回类型:Boolean
build 构建
POST http://127.0.0.1:8080/{optionalFolderPath}job/{name}/build
- 返回类型: IntegerResponse
字段 | 类型 | 说明 |
---|---|---|
value | Integer | |
errors | List<Error> |
build-with-params 使用参数创建任务
POST http://127.0.0.1:8080/{optionalFolderPath}job/{name}/buildWithParameters
- 参数
key | value |
---|---|
payload | Map<String, List<String>> properties |
- 返回类型: IntegerResponse
last-build-number 获取上次构建序号
GET http://127.0.0.1:8080/{optionalFolderPath}job/{name}/lastBuild/buildNumber
- 返回类型:Integer
last-build-timestamp 获取上次构建时间戳
GET http://127.0.0.1:8080/{optionalFolderPath}job/{name}/lastBuild/buildTimestamp
- 返回类型:String
progressive-text 获取构建控制台输出
GET http://127.0.0.1:8080/{optionalFolderPath}job/{name}/lastBuild/logText/progressiveText
- 返回类型:ProgressiveText
字段 | 类型 | 说明 |
---|---|---|
text | String | 控制台输出 |
size | Integer | 字数 |
hasMoreData | Boolean | 是否有更多数据 |
网友评论