through - API de Jenkins: obtenga una lista de trabajos filtrados por parámetro de compilación. ¿Qué trabajos han creado este compromiso Git?
jenkins api token example (4)
Estamos enviando diferentes parámetros a nuestros trabajos de Jenkins, entre ellos, el Git commit SHA1. Queremos obtener una lista de trabajos que usaron ese valor de parámetro (el Git SHA1, ¿qué trabajos ejecutaron este compromiso?).
La siguiente URL nos dará todas las compilaciones :
http://jenkins.example.com/api/json?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&pretty=true
Se tarda algo de tiempo en procesarse (6 segundos) y contiene demasiadas compilaciones (5 MB de compilaciones).
Salida de muestra de esa URL:
{
"jobs" : [
{
"name" : "Job name - Build",
"builds" : [
{
"actions" : [
{
"parameters" : [
{
"name" : "GIT_COMMIT_PARAM",
"value" : "5447e2f43ea44eb4168d6b32e1a7487a3fdf237f"
}
]
},
(...)
¿Cómo podemos usar la API JSON de Jenkins para enumerar todos los trabajos con un determinado valor de parámetro de compilación?
¿Cómo podemos usar la API JSON de Jenkins para enumerar todos los trabajos con un determinado valor de parámetro de compilación?
No estoy seguro de la API de JSON, pero puede usar la API de XML y combinar los parámetros de árbol y 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
Ejemplo de resultado:
<job_names>
<name>JOB1</name>
<name>JOB2</name>
<name>JOB3</name>
...
</job_names>
Nota: el trabajo se incluye en esta lista si al menos uno se compiló con el parámetro deseado
Aquí está la consulta para pasar trabajos solamente:
http://jenkinsURL/job/ProjectFolderName/api/xml?tree=jobs[name,color=blue]
Aquí está la consulta para los trabajos que fallan solamente:
http://jenkinsURL/job/ProjectFolderName/api/xml?tree=jobs[name,color=yellow]
Parece que no es compatible con JSON API, sin embargo, si puede usar XML API, es posible realizar consultas a través de XPATH, vea el ejemplo a continuación.
http://jenkins.example.com/api/xml?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&exclude=hudson/job/build/action/parameter[value!=%275447e2f43ea44eb4168d6b32e1a7487a3fdf237f%27]
Puede ajustar la mejor cadena de consulta para que se ajuste a sus necesidades.
crédito a http://blog.dahanne.net/2014/04/02/using-jenkins-hudson-remote-api-to-check-jobs-status/
También he estado buscando esto, y afortunadamente encontré una idea impresionante.
https://gist.github.com/justlaputa/5634984
Para responder tu pregunta:
jenkins_url + /api/json?tree=jobs[name,color]
Usando tu ejemplo de arriba
http://jenkins.example.com/api/json?tree=jobs[name,color]
Parece que todo lo que necesitas hacer es eliminar el parámetro de compilación de tu URL original, y deberías estar bien.