如何从Jenkins JSON Remote Access API查询特定的分支构建号

问题描述 投票:1回答:2

在我的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但我会解决分支名称键中的所有内容,这样我就不必遍历所有分支并比较名称。我假设我可以缩小它的范围,我指定了"*",但无法找出正确的语法。

jenkins jenkins-api
2个回答
1
投票

我从这里得到了这些信息。

tree=actions[lastBuiltRevision[*,branch[*]]]

无论哪种方式,如果你想要分支信息,从树的buildsByBranchName部分内部,你将不得不像我上面那样查询它。


0
投票

如果你不介意用xml回答你的答案,xpath效果很好。

对于网址:

/lastStableBuild/api/xml?xpath=//buildsByBranchName&wrapper=meep

创建一个看起来像这样的xml:

<meep>
    <buildsByBranchName>
        ... 
    </buildsByBranchName>
</meep>

并且将使用buildsByBranchName填充(注意:如果有多个git遥控器,则可能有多个,因此需要一个包装器)用于指定的最后成功构建的URL中指定的作业。您可以将任何内容替换为“meep”一词,它将成为新创建的xml对象的包装器对象。

© www.soinside.com 2019 - 2024. All rights reserved.