Jenkins API整理

Jenkins API思路导图

 

 

 

在调用Jenkins API 时需要以HTTP Basic Auth验证方式提供用户名和密码,否则会出现”403 No valid crumb was included in the request“ 的错误。

获取Jenkins生成的crumb值:
通过浏览器直接打开:http://你的jenkins链接地址/crumbIssuer/api/xml
返回结果类似:

<defaultCrumbIssuer _class="hudson.security.csrf.DefaultCrumbIssuer">
<crumb>c137c5cc4ee139a383feae6b0f2dd262</crumb>
<crumbRequestField>Jenkins-Crumb</crumbRequestField>
</defaultCrumbIssuer>
远程调用认证方式
—user <username>:<api token>

站点API

创建一个自由风格的任务
curl -X POST -H "Content-Type:application/xml" -d @config.xml  "http://你的IP地址:8080/jenkins/createItem?name=任务名" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
创建Maven任务
curl -X POST -H "Content-Type:application/xml" -d @config_maven.xml  "http://你的IP地址:8080/jenkins/createItem?name=任务名" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
复制任务(需3个参数,名字,模式,复制的任务名)
curl -X POST "http://你的IP地址:8080/jenkins/createItem?name=新的任务名&mode=copy&from=被复制的任务的名字" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
重启Jenkins
curl -X POST "http://你的IP地址:8080/jenkins/quietDown" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
取消重启Jenkins
curl -X POST "http://你的IP地址:8080/jenkins/cancelQuietDown" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
安全重启(无任务运行时重启)
curl -X POST "http://你的IP地址:8080/jenkins/safeRestart" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"

Bulid API

获取运行任务的控制台日志(多次GET获取控制台日志)
curl -X GET "http://你的IP地址:8080/jenkins/job/Project名字/lastSuccessfulBuild/logText/progressiveText?start=0" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"

JOB API

运行任务
curl -X POST "http://你的IP地址:8080/jenkins/job/Project名字/buildWithParameters?参数名=参数值&参数名=参数值&参数名=参数值" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
获取最后一次构建的Build Num
curl -X POST "http://你的IP地址:8080/jenkins/view/%E5%85%89%E6%98%8E%E9%A2%84%E5%8F%91%E5%B8%83%E7%8E%AF%E5%A2%83/job/42.001/lastSuccessfulBuild/buildNumber" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
获取最后一次构建的时间戳
curl -X POST "http://你的IP地址:8080/jenkins/view/%E5%85%89%E6%98%8E%E9%A2%84%E5%8F%91%E5%B8%83%E7%8E%AF%E5%A2%83/job/42.001/lastSuccessfulBuild/buildTimestamp" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
获取任务描述
curl -X GET "http://你的IP地址:8080/jenkins/job/Project名字/description" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
更新任务描述
curl -X POST "http://你的IP地址:8080/jenkins/job/Project名字/description" --date "description=更新的描述内容"--user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
删除一个任务
curl -X POST "http://你的IP地址:8080/jenkins/job/Project名字/doDelete" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
禁用一个任务
curl -X POST "http://你的IP地址:8080/jenkins/job/Project名字/disable" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
启用一个任务
curl -X POST "http://你的IP地址:8080/jenkins/job/Project名字/enable" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"
获取job信息(json格式,可用tree过滤返回信息,需要研究其语法)
curl -X POST "http://你的IP地址:8080/jenkins/job/66.release/api/json?pretty=true" --user admin:11bb76b06bd85a42ceb095b59ce9342b33 --header "Jenkins-Crumb:c37f22f7ba671da5cbb08c14664bd755"

 


posted @ 2020-12-27 21:57  Buster_Hsueh  阅读(374)  评论(0编辑  收藏  举报