Jenkins Organization Folder REST API 接口文档
Organization Folder 是 Jenkins 中用于自动扫描整个组织(如 GitHub Organization、GitLab Group、Bitbucket Team)并为每个仓库自动创建 Multibranch Pipeline 的项目类型 。[1]
URL 层级结构
Organization Folder 比普通 Multibranch Pipeline 多一层嵌套,其层级结构为 :[2][3]
一、获取组织与仓库信息
1.1 获取 Organization Folder 下所有仓库
| 项目 |
说明 |
| 请求地址 |
GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/api/json |
| 返回内容 |
该组织下所有已扫描的仓库列表(即 Multibranch Pipeline 列表) |
常用参数:
1.2 获取某仓库下所有分支
| 项目 |
说明 |
| 请求地址 |
GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/api/json |
| 返回内容 |
该仓库下所有分支及其 Job 信息 |
示例请求:
1.3 获取某分支的所有构建信息
| 项目 |
说明 |
| 请求地址 |
GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/job/{BRANCH_NAME}/api/json |
| 常用参数 |
?tree=builds[number,result,timestamp,duration]&depth=1 |
注意:分支名中的 / 需要编码为 %2F,例如 feature/login → feature%2Flogin
二、触发分支构建
2.1 无参数构建
| 项目 |
说明 |
| 请求地址 |
POST {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/job/{BRANCH_NAME}/build |
| 认证 |
需要 Basic Auth(用户名 + API Token) |
2.2 带参数构建
| 项目 |
说明 |
| 请求地址 |
POST {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/job/{BRANCH_NAME}/buildWithParameters |
| 参数传递 |
Query String 或 Form Data |
示例:
2.3 获取构建号
构建触发后,从 Location Header 获取队列 ID,再查询实际构建号:
| 步骤 |
请求地址 |
| 获取队列项 |
响应 Header Location → {JENKINS_URL}/queue/item/{QUEUE_ID}/ |
| 查询构建号 |
GET {JENKINS_URL}/queue/item/{QUEUE_ID}/api/json |
| 返回字段 |
executable.number 即为构建号 |
三、实时查看 Console 输出
3.1 获取完整日志
| 项目 |
说明 |
| 请求地址 |
GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/job/{BRANCH_NAME}/{BUILD_NUMBER}/consoleText |
| 返回格式 |
纯文本 |
3.2 增量实时获取
| 项目 |
说明 |
| 请求地址 |
GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/job/{BRANCH_NAME}/{BUILD_NUMBER}/logText/progressiveText?start={OFFSET} |
| 响应 Header |
X-Text-Size(下次偏移量)、X-More-Data(是否继续) |
四、组织扫描操作
4.1 触发组织扫描(发现新仓库/分支)
| 项目 |
说明 |
| 扫描整个组织 |
POST {JENKINS_URL}/job/{ORG_FOLDER_NAME}/build |
| 扫描单个仓库 |
POST {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/build |
扫描操作会检测新增/删除的仓库和分支,并自动更新 Jenkins Job 结构 。[1]
4.2 查看扫描日志
| 项目 |
说明 |
| 组织扫描日志 |
GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/computation/consoleText |
| 仓库扫描日志 |
GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/indexing/consoleText |
五、完整 URL 路径汇总
| 功能 |
请求方法 |
URL 模板 |
| 组织下所有仓库 |
GET |
/job/{ORG}/api/json |
| 仓库下所有分支 |
GET |
/job/{ORG}/job/{REPO}/api/json |
| 分支构建列表 |
GET |
/job/{ORG}/job/{REPO}/job/{BRANCH}/api/json |
| 单次构建详情 |
GET |
/job/{ORG}/job/{REPO}/job/{BRANCH}/{NUM}/api/json |
| 触发分支构建 |
POST |
/job/{ORG}/job/{REPO}/job/{BRANCH}/build |
| 带参数构建 |
POST |
/job/{ORG}/job/{REPO}/job/{BRANCH}/buildWithParameters |
| 完整日志 |
GET |
/job/{ORG}/job/{REPO}/job/{BRANCH}/{NUM}/consoleText |
| 增量日志 |
GET |
/job/{ORG}/job/{REPO}/job/{BRANCH}/{NUM}/logText/progressiveText?start={OFFSET} |
| 扫描组织 |
POST |
/job/{ORG}/build |
| 扫描仓库 |
POST |
/job/{ORG}/job/{REPO}/build |
特殊字符处理:分支名中的 / 编码为 %2F,# 编码为 %23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20