Je peux utiliser l'API Jenkins pour obtenir des informations sur ma version via l'URL
http://localhost:8080/job/myjob/149/api/json
Je souhaite pouvoir interroger le nœud changeSet à l'aide du paramètre de chaîne de requête d'arbre. Je peux interroger avec succès des nœuds non indexés comme "durée" via
http://localhost:8080/job/myjob/149/api/json?tree=duration
Comment interroger des nœuds indexés comme changeSet? Je n'arrive pas à trouver de doc n'importe où.
{
"actions": [
{
"causes": [
{
"shortDescription": "Started by an SCM change"
}
]
},
{},
{},
{}
],
"artifacts": [],
"building": false,
"description": null,
"duration": 80326,
"estimatedDuration": 68013,
"executor": null,
"fullDisplayName": "my project #149",
"id": "2013-06-14_14-31-06",
"keepLog": false,
"number": 149,
"result": "SUCCESS",
"timestamp": 1371234666000,
"url": "http://localhost:8080/job/my project/149/",
"builtOn": "",
"changeSet": {
"items": [
{
"affectedPaths": [
"SearchViewController.m",
"Sample.strings"
],
"author": {
"absoluteUrl": "http://localhost:8080/user/my user",
"fullName": "My User"
},
"commitId": "9032",
"timestamp": 1371234304048,
"date": "2013-06-14T18:25:04.048031Z",
"msg": "Author:my_author Description: changes Id: B-186199 Reviewer:reviewer_name",
"paths": [
{
"editType": "edit",
"file": "/branches/project_name/iOS/_MainLine/project_name/SearchViewController.m"
},
],
"revision": 9032,
"user": "user_name"
}
],
"kind": "svn",
"revisions": [
{
"module": "repo_url",
"revision": 8953
},
{
"module": "repo_url",
"revision": 9032
}
]
},
"culprits": [
{
"absoluteUrl": "http://localhost:8080/user/username",
"fullName": "username"
}
]
}
La documentation de l'API a un indice:
Une alternative plus récente est le paramètre de requête d'arborescence. [snip] vous avez seulement besoin de savoir quels éléments vous recherchez, plutôt que ce que vous ne recherchez pas (qui est de toute façon une liste ouverte lorsque les plugins peuvent apporter des éléments API). La valeur doit être une liste de noms de propriétés à inclure, avec des sous-propriétés entre accolades carrées.
Pour une liste simple, obtenez le sous-arbre entier avec:
http://jenkins/job/myjob/../api/json?tree=artifacts[*]
ou répertoriez des propriétés spécifiques dans les accolades.
Pour changeSet
, utilisez
http://jenkins/job/myjob/../api/json?tree=changeSet[*[*]]
pour tout récupérer.
Utilisez des accolades carrées imbriquées pour des sous-sous-propriétés spécifiques, par exemple:
http://jenkins/job/myjob/../api/json?tree=changeSet[items[revision]]
La documentation de l'arborescence indique qu'elle est destinée aux cas où l'appelant ne sait pas quelles propriétés récupérer.