【问题标题】:How to query specific branch build number from Jenkins JSON Remote Access API如何从 Jenkins JSON 远程访问 API 查询特定的分支内部版本号
【发布时间】:2017-01-25 22:31:24
【问题描述】:

在我的 jenkins 作业的浏览器中,我正在运行以下查询。

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,但我会满足于分支名称键内的所有内容,这样我就不必遍历所有分支并比较名称。我假设我可以在我指定了 "*" 但无法确定要使用的正确语法的情况下进一步缩小范围。

【问题讨论】:

    标签: jenkins jenkins-api


    【解决方案1】:

    我是从这里得到的信息。

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

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

    【讨论】:

      【解决方案2】:

      如果您不介意以 xml 格式返回答案,xpath 效果很好。

      对于网址:

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

      创建一个如下所示的 xml:

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

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

      【讨论】:

        猜你喜欢
        • 2011-11-02
        • 2017-12-25
        • 1970-01-01
        • 2016-02-03
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        • 2014-09-04
        • 2013-11-07
        相关资源
        最近更新 更多