我正在遵循指南,以便能够根据声纳报告控制工作状态:https://docs.sonarqube.org/display/SONARQUBE53/Breaking+the+CI+Build
这里解释说你得到一个taskid,当任务完成时你检索一个可以用来获取质量门信息的analysisId,使用/ api / qualitygates / project_status?analysisId =
我原本期望这个analysisId会持续存在并随时提供相同的报告。 事实并非如此。根据我的经验,api project_status总是返回最后一个有效的报告,并且不再保留过去的分析。
以下是我用来演示的协议
触发第一次分析,为我提供第一份报告:
api/qualitygates/project_status?analysisId=AWEnFPG63R-cEOOz4bmK
状态为ERROR
和coverage = 80%
然后我触发第二个分析给我另一个id:
api/qualitygates/project_status?analysisId=AWEnHBj53R-cEOOz4bny
状态为OK
和coverage=90%
现在,如果我回拨第一个analysisId api/qualitygates/project_status?analysisId=AWEnFPG63R-cEOOz4bmK
- >报告已更改,与最后一个报告类似
有人能解释一下analyId的概念吗?因为这不是真正的分析标识符。
答案 0 :(得分:0)
您在问题中提供的链接是文档的存档旧版本。由于您的评论显示您使用的是当前(6.7.1)版本的SonarQube,因此您将从使用当前文档中受益。
在当前版本中,Webhooks允许您在分析报告处理完成后通知外部系统。 Jenkins的SonarQube扫描器使其成为very easy to use webhooks in a pipeline,但即使您没有使用Jenkins管道,您仍应使用webhooks而不是尝试手动检索所有这些。如文档(先前链接)所示,webhook有效负载包括分析时间戳,项目名称和密钥以及质量门状态。