gpt4 book ai didi

java - 从 Jenkins REST API 获取所有作业的所有构建的构建详细信息

转载 作者:行者123 更新时间:2023-12-02 09:21:09 25 4
gpt4 key购买 nike

我有一个托管的 Jenkins 服务器,从那里,我尝试使用 Jenkins REST API 获取所有作业的构建详细信息(如结果、时间戳、持续时间等),然后将其保存在我的数据库中。

现在,我从 Java 代码中调用以下 API,以获取所有作业(大约 200 个作业):

https://<JENKINS_HOST>/api/json

然后我使用以下方法获取作业详细信息和每个作业的所有构建:

https://<JENKINS_HOST>/job/MY_JOB/api/json

最后,对于每个构建(我只需要获取最后 50 个构建),我必须调用它来获取构建详细信息:

https://<JENKINS_HOST>/job/MY_JOB/<BUILD_NUMBER>/api/json

因此,总共大约有 50*200 + 201 = 超过 10000 个 API 调用。

我猜,这么多 API 调用会让 Jenkins 服务器执行缓慢?

所以,我的问题是有没有一种更快/更优化的方法来做到这一点,这样我就不必进行这么多的 API 调用?

就像我可以使用一个网址获取所有构建详细信息,如下所示:(假设)

https://<JENKINS_HOST>/job/MY_JOB/api/json?fetchAllbuildDetails=True

最佳答案

如果其他人遇到同样的问题,我可以使用树来完成此操作:

https://<JENKINS_HOST>/api/json?tree=jobs[name,url,builds[number,result,duration,url]]

这里,可以过滤列名以仅获取您需要的数据,因为由此返回的数据量很大。

您还可以像这样限制要获取的记录数量:

https://<JENKINS_HOST>/api/json?tree=jobs[name,url,builds[number,result,duration,url]{0,50}]

这将只获取所有作业的最后 50 个版本,这正是我所需要的。

关于java - 从 Jenkins REST API 获取所有作业的所有构建的构建详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com