1

在我的詹金斯工作的浏览器中,我正在运行以下查询。

lastStableBuild/api/json?pretty=true&tree=actions[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 但我会满足于分支名称键内的所有内容,这样我就不必遍历所有分支并比较名称。我假设我可以在我"*"指定但无法弄清楚要使用的正确语法的地方进一步缩小范围。

4

2 回答 2

1

我是从这里得到的信息。

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

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

于 2017-10-20T13:29:03.357 回答
0

如果您不介意在 xml 中得到答案,那么xpath可以很好地工作。

对于网址:

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

创建一个如下所示的 xml:

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

并且将填充url 中指定的最后一次成功构建作业的 buildsByBranchName (注意:如果有多个 git 遥控器,可能会有多个,因此需要一个包装器) 。您可以用任何东西代替单词“meep”,这将成为新创建的 xml 对象的包装对象。

于 2017-12-21T21:11:17.977 回答