我可以使用Jenkins API通过url获取关于我的构建的信息

http://localhost:8080/job/myjob/149/api/json

我希望能够使用tree query string参数查询变更集节点.我可以通过

http://localhost:8080/job/myjob/149/api/json?tree=duration

如何查询像变更集这样的索引节点?我好像到处都找不到doctor .

{
    "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元素时,这无论如何都是一个无限制的列表).该值应为要包括的属性名称列表,with subproperties inside square braces.

对于简单列表,使用以下命令获取整个子树:

http://jenkins/job/myjob/../api/json?tree=artifacts[*]

or list specific properties within the braces.

changeSet美元,使用

http://jenkins/job/myjob/../api/json?tree=changeSet[*[*]]

去找回一切.

对特定的子属性使用嵌套的方括号,例如:

http://jenkins/job/myjob/../api/json?tree=changeSet[items[revision]]

树文档表示,它适用于调用方不知道要检索哪些属性的情况.

Json相关问答推荐

如何在生产环境中更改 Flutter 应用程序中的数据模型?

PowerShell - 如何迭代 PSCustomObject 嵌套对象?

如何删除 django jsonfield 中的特定项目

无法向 Json 数组添加新元素

如何使用 Swiftui 判断 JSON 是否缺少键值对

将嵌套的 JSON 对象规范化为 Pandas 数据框

从调试器获取 IntelliJ Idea 中的 JSON 对象

在 JSON 字符串中react i18n 换行符

十六进制格式可以与 JSON 文件一起使用吗?如果是这样,怎么做?

如何在Flutter 中反序列化来自json的对象列表

使用 serde 生成漂亮的(缩进的)JSON

json.loads 可以忽略尾随逗号吗?

.NET Core:从 API JSON 响应中删除空字段

RestClientException:无法提取响应.找不到合适的 HttpMessageConverter

在 Webpack 中加载静态 JSON 文件

使用 jq 如何用其他名称替换键的名称

REST API - 文件(即图像)处理 - 最佳实践

TypeError:JSON 对象必须是 str,而不是 'bytes'

新的@angular/cli 版本中的文件 angular-cli.json 在哪里?

使用 jq 向现有 JSON 数组添加新元素