2017-01-25 5 views
1

私のjenkinsジョブのブラウザ内で、次のクエリを実行しています。上記のクエリからJenkinsから特定のブランチビルド番号をクエリする方法JSONリモートアクセスAPI

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を使用していますが、ブランチ名キーの内部にすべてのものがあるので、すべてのブランチをループして名前を比較する必要はありません。私は"*"が指定されている場所を絞り込むことができますが、使用する正しい構文を理解することはできません。

答えて

0

私はここからその情報を得ました。あなたは、分岐情報が必要な場合は

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

いずれかの方法で、木のbuildsByBranchNameセクション内から、あなたは私が上記したようにそれを照会する必要があります。

0

答えをxmlに戻しても構わない場合は、xpathがうまく機能します。 urlに

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

とbuildsByBranchName (注移入されます:

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

は次のようなXMLを作成し、複数存在する場合、複数のがあるかもしれませんgit remotes、したがってラッパーの必要性) URLで指定されたジョブの指定された最後に成功したビルド。 "meep"という言葉に置き換えることができます。これは、新しく作成されたxmlオブジェクトのラッパーオブジェクトになります。

関連する問題