我们向Jenkins作业发送不同的参数,其中包括Git commit SHA1.我们想获得一个使用该参数值的作业列表(Git SHA1 - 哪些作业运行了这个提交?).
以下URL将为我们提供所有构建:
http://jenkins.example.com/api/json?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&pretty=true
Run Code Online (Sandbox Code Playgroud)
渲染(6秒)需要一些时间,并且包含太多构建(5 MB构建).
该URL的示例输出:
{
"jobs" : [
{
"name" : "Job name - Build",
"builds" : [
{
"actions" : [
{
"parameters" : [
{
"name" : "GIT_COMMIT_PARAM",
"value" : "5447e2f43ea44eb4168d6b32e1a7487a3fdf237f"
}
]
},
(...)
Run Code Online (Sandbox Code Playgroud)
我们如何使用Jenkins JSON API列出具有特定构建参数值的所有作业?
我们如何使用Jenkins JSON API列出具有特定构建参数值的所有作业?
不确定JSON API,但您可以使用XML API并组合树和xpath参数:
http://jenkins_url/api/xml?tree=jobs[name,builds[actions[parameters[name,value]]]]&xpath=/hudson/job[build/action/parameter[name="GIT_COMMIT_PARAM"][value="5447e2f43ea44eb4168d6b32e1a7487a3fdf237f"]]/name&wrapper=job_names&pretty=true
Run Code Online (Sandbox Code Playgroud)
结果样本:
<job_names>
<name>JOB1</name>
<name>JOB2</name>
<name>JOB3</name>
...
</job_names>
Run Code Online (Sandbox Code Playgroud)
注意:如果至少有一个构建是使用所需参数构建的,则作业属于此列表
也一直在寻找这个,幸运的是我发现了一个很棒的要点
https://gist.github.com/justlaputa/5634984
要回答您的问题:
jenkins_url + /api/json?tree=jobs[name,color]
Run Code Online (Sandbox Code Playgroud)
从上面使用您的示例
http://jenkins.example.com/api/json?tree=jobs[name,color]
Run Code Online (Sandbox Code Playgroud)
因此,似乎您所需要做的就是从原始url中删除builds参数,您应该会很好
看起来 JSON API 不支持,但是如果您可以使用 XML API,则可以通过 XPATH 查询,请参阅下面的示例
http://jenkins.example.com/api/xml?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&exclude=hudson/job/build/action/parameter[value!=%275447e2f43ea44eb4168d6b32e1a7487a3fdf237f%27]
Run Code Online (Sandbox Code Playgroud)
您可以调整更好的查询字符串来满足您的需求。
归功于http://blog.dahanne.net/2014/04/02/using-jenkins-hudson-remote-api-to-check-jobs-status/
| 归档时间: |
|
| 查看次数: |
31783 次 |
| 最近记录: |