Jenkins常用接口API
1 站点API
- 站点支持的API: http://<Jenkins-Server-Address>/api
- 查询到站点中所有的job信息(JSON格式): http://<Jenkins-Server-Address>/api/json?pretty=true
- 查询到站点中所有的job信息(XML格式): http://<Jenkins-Server-Address>/api/xml
- 通过tree进行过滤: http://<Jenkins-Server-Address>/api/json?pretty=true&tree=jobs[name[*]]
- 重启站点: http://<Jenkins-Server-Address>/restart
- 安全重启站点: http://<Jenkins-Server-Address>/safeRestart
2 获取Job相关信息
- 当前的api说明: http://<Jenkins-Server-Address>/job/<Job-Name>/api/
- JSON格式: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true
- XML格式: http://<Jenkins-Server-Address>/job/<Job-Name>/api/xml
3 获取Job的指定信息(JSON格式)
- 获取Job的builds节点信息: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[*]
- 获取Job的builds节点下displayName节点信息: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[displayName]
- 获取Job的builds节点下指定displayName节点信息: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[displayName]{x,y}
- 获取两个相关的节点信息,例如: http://<Jenkins-Server-Address>/job/<Job-Name>/api/json?pretty=true&tree=builds[displayName]{3,5},url[*]
4 获取指定Build相关信息
- JSON格式: http://<Jenkins-Server-Address>/job/<Job-Name>/<Build-Number>/api/json?pretty=true
- XML格式: http://<Jenkins-Server-Address>/job/<Job-Name>/<Build-Number>/api/xml
- 获取指定信息: http://<Jenkins-Server-Address>/job/<Job-Name>/<Build-Number>/api/json?pretty=true&&tree=<filter>
5 通过curl工具
- 获取最近的buildNumber: `curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastBuild/buildNumber`
- 获取最近稳定的buildNumber:`curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastStableBuild/buildNumber`
- 获取最近成功的buildNumber:`curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastSuccessfulBuild/buildNumber`
- 获取最近失败的buildNumber:`curl --silent http://<Jenkins-Server-Address>/job/<Job-Name>/lastFailedBuild/buildNumber`
6 对Job的一些操作
- 获取(get方法)和更新(post方法)Job的description信息: http://<Jenkins-Server-Address>/job/<Job-Name>/description
- 获取(get方法)和更新(post方法)Job的详细配置信息: http://<Jenkins-Server-Address>/job/<Job-Name>/config.xml
- 不带参数直接执行(post方法): http://<Jenkins-Server-Address>/job/<Job-Name>/build
- 带参数执行(post方法),例如: http://<Jenkins-Server-Address>/job/<Job-Name>/buildWithParameters?token=testuser\&AAA='test123'\&BBB='test789'
- 禁用(post方法)指定的job: http://<Jenkins-Server-Address>/job/<Job-Name>/disable
- 启用(post方法)指定的job: http://<Jenkins-Server-Address>/job/<Job-Name>/enable
- 删除(post方法)指定的job: http://<Jenkins-Server-Address>/job/<Job-Name>/doDelete
实例
获取项目ceshi的最后一次构建信息
curl --silent http://jenkins.wmmzz.com/job/ceshi/lastBuild/api/json?pretty=true --user admin:"passwd"
获取jenkins所有job信息
curl --silent http://jenkins.wmmzz.com/api/json?pretty=true --user admin:"passwd"
获取项目ceshi的配置信息
curl --silent http://jenkins.wmmzz.com/job/ceshi/config.xml --user admin:"passwd"
创建一个新项目,先下载案例ceshi的config.xml,再用这个配置模板创建项目test
curl --silent http://jenkins.wmmzz.com/job/ceshi/config.xml --user admin:"passwd" -o config.xml
curl -X POST http://jenkins.wmmzz.com/createItem?name=test --user admin:"passwd" --data-binary "@config.xml" -H "Content-Type: text/xml"
更新ceshi项目的配置文件,更改config.xml再传上去
curl -X POST http://jenkins.wmmzz.com/job/ceshi/config.xml --user admin:"passwd" --data-binary "@config.xml" -H "Content-Type: text/xml"
根据实际测试,当jenkins项目配置中启用'构建'里的'执行shell'时,下载的config.xml文件无法使用,测试时报错
此时,推荐使用复制的方法创建项目,使用创建好的muban项目,复制出新项目ceshi
curl -X POST http://jenkins.wmmzz.com/createItem?name=ceshi\&mode=copy\&from=muban --user admin:"passwd" -H "Content-Type: application/xml"
评论区