programing

Jenkins REST API - 트리를 사용하여 JSON 배열의 특정 항목을 참조합니다.

lastmoon 2023. 3. 23. 23:03
반응형

Jenkins REST API - 트리를 사용하여 JSON 배열의 특정 항목을 참조합니다.

Jenkins API를 사용하여 url을 통해 빌드 정보를 얻을 수 있습니다.

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

tree query string 파라미터를 사용하여 changeSet 노드를 쿼리할 수 있도록 하고 싶습니다."기간"과 같은 색인화되지 않은 노드를 성공적으로 쿼리할 수 있습니다.

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]]

트리의 메뉴얼에 의하면, 발신자가 취득할 속성을 모르는 경우를 대상으로 하고 있습니다.

언급URL : https://stackoverflow.com/questions/17236710/jenkins-rest-api-using-tree-to-reference-specific-item-in-json-array

반응형