我可以使用Jenkins API通过url获取有关我的构建的信息
http://localhost:8080/job/myjob/149/api/json
我希望能够使用树查询字符串参数查询changeSet节点。我可以通过
成功查询非索引节点,如“duration”http://localhost:8080/job/myjob/149/api/json?tree=duration
如何查询像changeSet这样的索引节点?我似乎无法在任何地方找到任何文档。
{
"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"
}
]
}
答案 0 :(得分:49)
API文档有一个提示:
更新的替代方法是树查询参数。 [snip]你只需知道你正在寻找什么元素,而不是你不想要的东西(当插件可以贡献API元素时,无论如何都是开放式列表)。该值应该是要包含的属性名称列表,在方括号内包含子属性。
对于一个简单的列表,请使用以下内容获取整个子树:
http://jenkins/job/myjob/../api/json?tree=artifacts[*]
或列出大括号内的特定属性。
对于changeSet
,请使用
http://jenkins/job/myjob/../api/json?tree=changeSet[*[*]]
检索所有内容。
对特定的子子属性使用嵌套的方括号,例如:
http://jenkins/job/myjob/../api/json?tree=changeSet[items[revision]]
树文档说明它适用于调用者不知道要检索哪些属性的情况。