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

我有一台托管的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个版本,这正是我所需要的。

以上是 从Jenkins REST API获取所有作业的所有构建的构建详细信息 的全部内容, 来源链接: utcz.com/qa/430509.html

回到顶部