我有一个使用jenkins的构建设置,并配置了100多个作业。目前,我需要从命令行获取构建细节的值。从jenkins本地ip /job/test_3/lastBuild/API/json我能够看到所有的构建值,如作业名称,状态,时间戳等。如何从命令行检索这些值?
aiazj4mn1#
它是一个 JSON API,因此您可以简单地格式化包含API所需部分的URL,并使用 curl 检索 JSON。即
http://<server>/job/test_3/lastBuild/api/json
字符串要获得所有100个,您可能需要使用某种脚本,无论是 bash 或 Python 或类似脚本,以便您可以将 curl 命令放入循环中,其中 build number 为循环索引加1。如果你只是想执行一堆 curl 命令来获取原始的 JSON,bash 可能是最简单的。该URL的形式为:
http://<server>/job/test_3/<loopVar + 1>/api/json
型
yebdmbv42#
Ken是正确的,使用http请求,注意他的示例将允许您检索一个特定作业的所有已保存构建的结果。如果您需要检索100多个作业中每一个的最后一个构建的状态,我建议如下:(通过调用http:/api/json)-对于/api/json的每个作业调用-在结果对象中查找'lasBuild'字段-调用/json/api以检索所有需要的信息最好用Python,Perl,Groovy,任何你觉得舒服的东西。
qhhrdooz3#
在bash中执行下面的命令。
curl -s“hostname/hostIP:port/view/z-admin/job/MSP_PROMOTE/lastBuild/API/json”|python -mjson工具
cbwuti444#
我知道这是一个很老的帖子,但只是想帮助那些仍然在挣扎的人。@khampson的解决方案是正确的,但我只是添加了一点。要访问json API,您首先需要为用户创建一个API令牌,并在@khampson建议的URL中使用它:第一个月使用jq来美化:curl -u <username>:<API Token> http://<server IP>:<port>/job/<project name>/lastBuild/api/json | jq个
curl -u <username>:<API Token> http://<server IP>:<port>/job/<project name>/lastBuild/api/json | jq
4条答案
按热度按时间aiazj4mn1#
它是一个 JSON API,因此您可以简单地格式化包含API所需部分的URL,并使用 curl 检索 JSON。
即
字符串
要获得所有100个,您可能需要使用某种脚本,无论是 bash 或 Python 或类似脚本,以便您可以将 curl 命令放入循环中,其中 build number 为循环索引加1。
如果你只是想执行一堆 curl 命令来获取原始的 JSON,bash 可能是最简单的。
该URL的形式为:
型
yebdmbv42#
Ken是正确的,使用http请求,注意他的示例将允许您检索一个特定作业的所有已保存构建的结果。如果您需要检索100多个作业中每一个的最后一个构建的状态,我建议如下:(通过调用http:/api/json)-对于/api/json的每个作业调用-在结果对象中查找'lasBuild'字段-调用/json/api以检索所有需要的信息
最好用Python,Perl,Groovy,任何你觉得舒服的东西。
qhhrdooz3#
在bash中执行下面的命令。
curl -s“hostname/hostIP:port/view/z-admin/job/MSP_PROMOTE/lastBuild/API/json”|python -mjson工具
cbwuti444#
我知道这是一个很老的帖子,但只是想帮助那些仍然在挣扎的人。@khampson的解决方案是正确的,但我只是添加了一点。要访问json API,您首先需要为用户创建一个API令牌,并在@khampson建议的URL中使用它:
第一个月
使用jq来美化:
curl -u <username>:<API Token> http://<server IP>:<port>/job/<project name>/lastBuild/api/json | jq
个