【问题标题】:Sonar api : what is the purpose of analysisid?Sonar api:分析ID的目的是什么?
【发布时间】:2018-01-24 22:31:04
【问题描述】:

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

这里解释说你会得到一个 taskid,当任务完成时你会检索一个 analysisId,它可用于使用 /api/qualitygates/project_status?analysisId= 获取 qualitygate 信息。

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

这是我用来演示的协议

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

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

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

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

所以现在,如果我回调第一个 analysisId api/qualitygates/project_status?analysisId=AWEnFPG63R-cEOOz4bmK -> 报告已更改并且与上一个类似

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

【问题讨论】:

  • 您的 SonarQube 版本是多少? 5.3 已经相当老了,而较新的版本提供了更好的方法来做到这一点。
  • 我的版本是6.7.1

标签: sonarqube


【解决方案1】:

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

在当前版本中,Webhooks 允许您在分析报告处理完成后通知外部系统。用于 Jenkins 的 SonarQube 扫描仪使其成为 very easy to use webhooks in a pipeline,但即使您不使用 Jenkins 管道,您仍应使用 webhook 而不是尝试手动检索这一切。如文档(之前链接)所示,webhook 有效负载包括分析时间戳、项目名称和密钥以及质量门状态。

【讨论】:

  • 感谢您的回答@g-ann-sonarsource-team。我了解 webhook 是一种新方式,但有一些限制。尽管如此,我使用的 api 仍然在 6.7.1 文档中进行了描述,提供了参数 'analysisId'.... 所以我的问题是我的上下文是 jenkins 1.x,具有自动生成提交作业(众多)。他们都发布声纳:项目结果,我只想等待并获得正确的触发分析。如果analysisId 一直保持一致——它的名字听起来很隐含……那很容易。
  • 我们有同样的问题,由于需要独立控制质量门,我们无法为我们复杂的环境实施 webhook。 SonarQube api 或质量门历史存储中是否存在错误?
猜你喜欢
  • 1970-01-01
  • 2015-03-01
  • 2023-04-05
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
相关资源
最近更新 更多