I am able to use the Jenkins API to get information about my build via the url
http://localhost:8080/job/myjob/149/api/json
I want to be able to query the changeSet node using the tree query string parameter. I can successfully query non-indexed nodes like "duration" via
http://localhost:8080/job/myjob/149/api/json?tree=duration
How do I query indexed nodes like changeSet? I can't seem to find any doc anywhere.
{
"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"
}
]
}
The API documentation has a hint:
A newer alternative is the tree query parameter. [snip] you need only know what elements you are looking for, rather than what you are not looking for (which is anyway an open-ended list when plugins can contribute API elements). The value should be a list of property names to include, with subproperties inside square braces.
For a simple list, get the whole subtree with:
http://jenkins/job/myjob/../api/json?tree=artifacts[*]
or list specific properties within the braces.
For changeSet
, use
http://jenkins/job/myjob/../api/json?tree=changeSet[*[*]]
to retrieve everything.
Use nested square braces for specific sub-subproperties, e.g.:
http://jenkins/job/myjob/../api/json?tree=changeSet[items[revision]]
The tree documentation says that it's intended for cases where the caller doesn't know what properties to retrieve.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With