在我的jenkins作业的浏览器中,我正在运行以下查询。
lastStableBuild / API / JSON?漂亮=真树=行动[buildsByBranchName [* [*]]]
以上查询的结果
{
"_class" : "hudson.model.FreeStyleBuild",
"actions" : [
{
"_class" : "hudson.model.CauseAction"
},
{
},
{
"_class" : "jenkins.metrics.impl.TimeInQueueAction"
},
{
},
{
"_class" : "hudson.plugins.git.util.BuildData",
"buildsByBranchName" : {
"my-branch-name" : {
"_class" : "hudson.plugins.git.util.Build",
"buildNumber" : 587,
"buildResult" : null,
"marked" : {
"SHA1" : "***",
"branch" : [
{
}
]
},
"revision" : {
"SHA1" : "***",
"branch" : [
{
}
]
}
},
"my-other-branch-name" : {
"_class" : "hudson.plugins.git.util.Build",
"buildNumber" : 1373,
"buildResult" : null,
"marked" : {
"SHA1" : "***",
"branch" : [
{
}
]
},
"revision" : {
"SHA1" : "***",
"branch" : [
{
}
]
}
},
我希望能够将它缩小到只有您可以使用的内部版本号
/lastSuccessBuild/buildNumber
使用api但我会解决分支名称键中的所有内容,这样我就不必遍历所有分支并比较名称。我假设我可以缩小它的范围,我指定了"*"
,但无法找出正确的语法。
我从这里得到了这些信息。
tree=actions[lastBuiltRevision[*,branch[*]]]
无论哪种方式,如果你想要分支信息,从树的buildsByBranchName部分内部,你将不得不像我上面那样查询它。
如果你不介意用xml回答你的答案,xpath效果很好。
对于网址:
/lastStableBuild/api/xml?xpath=//buildsByBranchName&wrapper=meep
创建一个看起来像这样的xml:
<meep>
<buildsByBranchName>
...
</buildsByBranchName>
</meep>
并且将使用buildsByBranchName填充(注意:如果有多个git遥控器,则可能有多个,因此需要一个包装器)用于指定的最后成功构建的URL中指定的作业。您可以将任何内容替换为“meep”一词,它将成为新创建的xml对象的包装器对象。