Jenkinsジョブにさまざまなパラメーターを送信しています。その中にはGitコミットSHA1があります。そのパラメーター値を使用したジョブのリストを取得したい(Git SHA1-このコミットを実行したジョブは?).
次のURLからすべてのビルドが得られます。
http://jenkins.example.com/api/json?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&pretty=true
レンダリングに時間がかかり(6秒)、ビルドが多すぎます(5 MBのビルド)。
そのURLからのサンプル出力:
{
"jobs" : [
{
"name" : "Job name - Build",
"builds" : [
{
"actions" : [
{
"parameters" : [
{
"name" : "GIT_COMMIT_PARAM",
"value" : "5447e2f43ea44eb4168d6b32e1a7487a3fdf237f"
}
]
},
(...)
Jenkins JSON APIを使用して、特定のビルドパラメーター値を持つすべてのジョブを一覧表示するにはどうすればよいですか?
Jenkins JSON APIを使用して、特定のビルドパラメーター値を持つすべてのジョブを一覧表示するにはどうすればよいですか?
JSON APIについてはわかりませんが、XML APIを使用してtreeとxpathパラメーターを組み合わせることができます:
http://jenkins_url/api/xml?tree=jobs[name,builds[actions[parameters[name,value]]]]&xpath=/hudson/job[build/action/parameter[name="GIT_COMMIT_PARAM"][value="5447e2f43ea44eb4168d6b32e1a7487a3fdf237f"]]/name&wrapper=job_names&pretty=true
結果サンプル:
<job_names>
<name>JOB1</name>
<name>JOB2</name>
<name>JOB3</name>
...
</job_names>
注:ビルドの少なくとも1つが目的のパラメーターでビルドされた場合、ジョブはこのリストに含まれます
また、これを探していて、幸運にも私は素晴らしい要点を見つけました
https://Gist.github.com/justlaputa/5634984
質問に答えるには:
jenkins_url + /api/json?tree=jobs[name,color]
上記の例を使用して
http://jenkins.example.com/api/json?tree=jobs[name,color]
だから、あなたがする必要があるのは、元のURLからbuildsパラメータを削除するだけであるように思えます、あなたは大丈夫です
JSON APIではサポートされていないようですが、XML APIを使用できる場合は、XPATHを介してクエリを実行できます。以下のサンプルを参照してください
http://jenkins.example.com/api/xml?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&exclude=hudson/job/build/action/parameter[value!=%275447e2f43ea44eb4168d6b32e1a7487a3fdf237f%27]
必要に応じて、より適切なクエリ文字列を調整できます。
http://blog.dahanne.net/2014/04/02/using-jenkins-hudson-remote-api-to-check-jobs-status/