Api Jenkins获得构建和参数列表

Api Jenkins获得构建和参数列表,api,jenkins,Api,Jenkins,我想对Jenkins进行一个API调用,以获取构建列表及其参数和状态。目前,我们将git commit sha1作为参数传递,以构建特定的分支。你知道如何轻松获取这些信息吗?詹金斯提供了一个很好的api 记录在: http://$HOST/jenkins/api 您可能需要以下内容: http://$HOST/jenkins/api/xml?xpath=/hudson/job[1]/build[1]/action[1]/parameter&depth=2 据我所知,这不能在一个API

我想对Jenkins进行一个API调用,以获取构建列表及其参数和状态。目前,我们将git commit sha1作为参数传递,以构建特定的分支。你知道如何轻松获取这些信息吗?

詹金斯提供了一个很好的api

记录在:

http://$HOST/jenkins/api
您可能需要以下内容:

http://$HOST/jenkins/api/xml?xpath=/hudson/job[1]/build[1]/action[1]/parameter&depth=2

据我所知,这不能在一个API调用中完成

首先查询所有构建

/job/<jobname>/api/xml
/job/<jobname>/api/json
/job//api/xml
/作业//api/json
这将分别返回xml或json输出

一旦获得了内部版本号,就可以查询每个内部版本号

/job/<jobname>/<jobnum>/api/xml?xpath=/freeStyleBuild/action/lastBuiltRevision/SHA
/job/<jobname>/<jobnum>/api/json?tree=actions[lastBuiltRevision[SHA]]
/job///api/xml?xpath=/freeStyleBuild/action/lastBuiltRevision/SHA
/job///api/json?tree=actions[lastBuiltRevision[SHA]]

然后,您可以对照您的SHA检查结果中的SHA。

将@user1255162的评论与答案相结合。我必须查询构建集并为报表打印其参数。下面是groovy中的代码片段

import groovy.json.JsonSlurper


def root = "<url to job>"
def options = "/api/json?tree=builds[actions[parameters[name,value]],result,building,number,duration,estimatedDuration]"

def jsonSlurper = new JsonSlurper()
def text = new URL("${root}/${options}").text
def data = jsonSlurper.parseText(text)

data["builds"].each { buildsdata ->
    def result = buildsdata["result"]
    def num = buildsdata["number"]
    print("${root}/${num}/parameters  |")
    buildsdata["actions"].each { actions ->
        if (actions["_class"].equals("hudson.model.ParametersAction")) {
            actions["parameters"].sort({it.name}).each { param ->
                    print("${param.name}=${param.value}|")
            }
        }
    }
    println("")
}
import groovy.json.JsonSlurper
def root=“”
def options=“/api/json?tree=builds[actions[parameters[name,value]],结果,构建,编号,持续时间,估计持续时间]”
def jsonSlurper=新的jsonSlurper()
def text=新URL(“${root}/${options}”).text
def data=jsonSlurper.parseText(文本)
数据[“构建]。每个{buildsdata->
def result=buildsdata[“result”]
def num=buildsdata[“number”]
打印(${root}/${num}/parameters |))
buildsdata[“actions”]。每个{actions->
if(actions[“_class]”等于(“hudson.model.ParametersAction”)){
actions[“parameters”].sort({it.name})。每个{param->
打印(${param.name}=${param.value}|”)
}
}
}
println(“”)
}

似乎在/hudson/job[1]之后,使用与您显示的类似的查询实际上不会产生任何结果。谢谢michas。你让我找到了正确的答案!这是我想要的结果。我知道你必须指定确切的版本号
/job/Clinical.Search/15/api/xml
您应该能够使用
/job/Clinical.Search/lastsuccesfulbuild/api/xml
来获取最后一次成功的构建。或者像这样的一个调用
/job//api/json?tree=builds[actions[parameters[name,value]],result,building,number,duration,estimatedDuration]