我可以使用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" } ] }
API文档有一个提示:
较新的替代方法是树查询参数。[snip]您只需要知道要查找的元素,而不是不需要的(无论如何,当插件可以贡献API元素时,这是一个开放式列表)。该值应该是要包括的属性名称的列表, 并且在方括号内 包含 子属性。
对于一个简单的列表,使用以下命令获取整个子树:
http://jenkins/job/myjob/../api/json?tree=artifacts[*]
或在花括号中列出特定属性。
对于changeSet,使用
changeSet
http://jenkins/job/myjob/../api/json?tree=changeSet[*[*]]
检索一切。
对特定的子子属性使用嵌套的方括号,例如:
http://jenkins/job/myjob/../api/json?tree=changeSet[items[revision]]
树文档说,它用于调用者不知道要检索哪些属性的情况。