Jenkins REST API-使用树引用JSON数组中的特定项目
我可以使用JenkinsAPI通过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"
}
]
}
回答:
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]]
树文档说,它用于调用者不知道要检索哪些属性的情况。
以上是 Jenkins REST API-使用树引用JSON数组中的特定项目 的全部内容, 来源链接: utcz.com/qa/409055.html