远程调用 Jenkins API 的方法
Jenkins 提供了丰富的 REST API,支持通过 HTTP 请求进行远程操作。以下是常用的 API 调用方式和示例。
获取 Jenkins 基本信息
使用 curl
获取 Jenkins 实例的基本信息,需替换 JENKINS_URL
和 USERNAME:PASSWORD
。
curl -u USERNAME:PASSWORD JENKINS_URL/api/json
触发构建任务
通过 POST 请求触发指定任务的构建,需替换 JOB_NAME
和参数。
curl -X POST -u USERNAME:PASSWORD JENKINS_URL/job/JOB_NAME/build
如果需要传递参数,使用以下格式:
curl -X POST -u USERNAME:PASSWORD JENKINS_URL/job/JOB_NAME/build \
--data-urlencode json='{"parameter": [{"name":"PARAM_NAME", "value":"PARAM_VALUE"}]}'
获取构建状态
获取特定任务的构建状态信息,替换 JOB_NAME
和 BUILD_NUMBER
。
curl -u USERNAME:PASSWORD JENKINS_URL/job/JOB_NAME/BUILD_NUMBER/api/json
停止构建
停止正在运行的构建任务,替换 JOB_NAME
和 BUILD_NUMBER
。
curl -X POST -u USERNAME:PASSWORD JENKINS_URL/job/JOB_NAME/BUILD_NUMBER/stop
使用 Python 调用 Jenkins API
安装 python-jenkins
库,通过 Python 脚本调用 API。
import jenkins
server = jenkins.Jenkins('JENKINS_URL', username='USERNAME', password='PASSWORD')
server.build_job('JOB_NAME', parameters={'PARAM_NAME': 'PARAM_VALUE'})
使用 Groovy 脚本
在 Jenkins 流水线中直接调用内部 API。
def response = httpRequest url: 'JENKINS_URL/api/json', authentication: 'CREDENTIALS_ID'
println(response.content)
生成 API Token
在 Jenkins 用户配置中生成 API Token,用于替代密码。
- 登录 Jenkins,进入用户配置页面。
- 在 API Token 区域点击 Generate。
- 保存生成的 Token,用于 API 认证。
curl -u USERNAME:API_TOKEN JENKINS_URL/api/json
处理 JSON 响应
使用 jq
工具解析 Jenkins API 返回的 JSON 数据。
curl -s -u USERNAME:PASSWORD JENKINS_URL/api/json | jq '.jobs[] .name'
使用 Postman 测试 API
在 Postman 中设置以下参数:
- 请求类型:GET 或 POST
- 认证方式:Basic Auth
- URL:
JENKINS_URL/api/json
- 头部:
Content-Type: application/json
注意事项
- 确保 Jenkins 配置了适当的权限,允许 API 访问。
- 使用 HTTPS 协议保障数据传输安全。
- 在生产环境中避免直接使用密码,推荐使用 API Token。
- 频繁调用 API 时注意速率限制,避免对 Jenkins 性能造成影响。