声纳 api : 分析ID的目的是什么?



我正在按照指南进行操作,以便能够根据声纳报告控制作业状态:https://docs.sonarqube.org/display/SONARQUBE53/Breaking+the+CI+Build

这里解释了你得到一个任务ID,当任务完成时,你检索一个分析ID,可用于使用/api/qualitygates/project_status?analysisId= 获取质量门信息

我本来希望这个 analysisId 会持续存在,并随着时间的推移提供相同的报告。 听起来并非如此。根据我的经验,API project_status总是返回最后一个有效报告,并且不再保留过去的分析。

这是我用来演示的协议

触发第一次分析,给我提供第一次报告:

api/qualitygates/project_status?analysisId=AWEnFPG63R-cEOOz4bmK具有状态ERRORcoverage = 80%

然后我触发第二个分析,给我另一个 ID:

api/qualitygates/project_status?analysisId=AWEnHBj53R-cEOOz4bny具有状态OKcoverage=90%

所以现在,如果我回调第一个分析Idapi/qualitygates/project_status?analysisId=AWEnFPG63R-cEOOz4bmK->报告已更改并且与最后一个报告相似

有人可以解释一下 analysisId 的概念吗?因为这不是这里真正的分析标识符。

您在问题中提供的链接指向存档的、相当旧的文档版本。由于您的评论显示您使用的是当前(6.7.1)版本的SonarQube,因此您将受益于使用当前文档。

在当前版本中,Webhook 允许您在分析报告处理完成后通知外部系统。SonarQube Scanner for Jenkins 使得在管道中使用 webhook 变得非常容易,但即使你不使用 Jenkins 管道,你仍然应该使用 webhook,而不是尝试手动检索这一切。如文档(前面链接)所示,Webhook 有效负载包括分析时间戳、项目名称和密钥以及质量入口状态。

最新更新