Files
2026-01-21 16:15:49 +08:00

6.4 KiB
Raw Permalink Blame History

Jenkins Organization Folder REST API 接口文档

Organization Folder 是 Jenkins 中用于自动扫描整个组织(如 GitHub Organization、GitLab Group、Bitbucket Team并为每个仓库自动创建 Multibranch Pipeline 的项目类型 。[1]


URL 层级结构

Organization Folder 比普通 Multibranch Pipeline 多一层嵌套,其层级结构为 [2][3]

{JENKINS_URL}
  └── /job/{ORG_FOLDER_NAME}              ← Organization Folder 层
        └── /job/{REPO_NAME}              ← Multibranch Pipeline 层(仓库)
              └── /job/{BRANCH_NAME}      ← 分支层
                    └── /{BUILD_NUMBER}   ← 构建层

一、获取组织与仓库信息

1.1 获取 Organization Folder 下所有仓库

项目 说明
请求地址 GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/api/json
返回内容 该组织下所有已扫描的仓库列表(即 Multibranch Pipeline 列表)

常用参数

?tree=jobs[name,url,_class]&depth=1

1.2 获取某仓库下所有分支

项目 说明
请求地址 GET {JENKINS_URL}/job/{ORG_FOLDER_NAME}/job/{REPO_NAME}/api/json
返回内容 该仓库下所有分支及其 Job 信息

示例请求

GET {JENKINS_URL}/job/my-github-org/job/my-repo/api/json?tree=jobs[name,url,lastBuild[number,result]]

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/loginfeature%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

示例

POST {JENKINS_URL}/job/my-github-org/job/my-repo/job/main/buildWithParameters?ENV=production&VERSION=1.0.0

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