Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I am able to use the Jenkins API to get information about my build via the url

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

I want to be able to query the changeSet node using the tree query string parameter. I can successfully query non-indexed nodes like "duration" via

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

How do I query indexed nodes like changeSet? I can't seem to find any doc anywhere.

{
    "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/MyHumana/iOS/_MainLine/MyHumana/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"
        }
    ]
}
share|improve this question

1 Answer

I agree, it's not very well described in the API documentation, but there is a hint.

A newer alternative is the tree query parameter. [snip] you need only know what elements you are looking for, rather than what you are not looking for (which is anyway an open-ended list when plugins can contribute API elements). The value should be a list of property names to include, with subproperties inside square braces.

For a simple list, you can get the whole subtree with: http://jenkins/job/myjob/../api/json?tree=artifacts[*] or list specific properties within the braces.

For changeSet, you can use http://jenkins/job/myjob/../api/json?tree=changeSet[*[*]] to retrieve everything. Use nested square braces for specific sub-subproperties, e.g. http://jenkins/job/myjob/../api/json?tree=changeSet[items[revision]]

The tree documentation says that it's intended for cases where you know what properties you want to retrieve.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.