Jenkins API: получить список заданий, отфильтрованных параметром build. Какие задания построили этот Git commit?
Мы отправляем разные параметры в наши задания Jenkins, среди которых Git commit SHA1. Мы хотим получить список заданий, которые использовали это значение параметра (Git SHA1 - какие задания выполняли это commit?).
Следующий URL-адрес даст нам все сборки:
http://jenkins.example.com/api/json?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&pretty=true
Требуется некоторое время для рендеринга (6 секунд) и содержит слишком много сборок (5 МБ построений).
Пример вывода из этого URL-адреса:
{
"jobs" : [
{
"name" : "Job name - Build",
"builds" : [
{
"actions" : [
{
"parameters" : [
{
"name" : "GIT_COMMIT_PARAM",
"value" : "5447e2f43ea44eb4168d6b32e1a7487a3fdf237f"
}
]
},
(...)
Как мы можем использовать JSON API Jenkins для отображения всех заданий с определенным значением параметра сборки?
Ответы
Ответ 1
Как мы можем использовать JSON API Jenkins для отображения всех заданий с определенным значением параметра сборки?
Не уверен в API JSON, но вы можете использовать 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>
Примечание. задание попадает в этот список, если по крайней мере одна его сборка была построена с помощью требуемого параметра
Ответ 2
Также искал это, и к счастью, я нашел удивительный смысл
https://gist.github.com/justlaputa/5634984
Чтобы ответить на ваш вопрос:
jenkins_url + /api/json?tree=jobs[name,color]
Используя ваш пример сверху
http://jenkins.example.com/api/json?tree=jobs[name,color]
Таким образом, кажется, что все, что вам нужно сделать, это удалить параметр builds из вашего исходного URL, и вы должны быть в порядке
Ответ 3
Похоже, что он не поддерживается в 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/
Ответ 4
Вот запрос только на прохождение работ:
http://jenkinsURL/job/ProjectFolderName/api/xml?tree=jobs[name,color=blue]
Вот запрос только для неудачных заданий:
http://jenkinsURL/job/ProjectFolderName/api/xml?tree=jobs[name,color=yellow]