SonarQube分支机构或项目之间的泄漏期

enp*_*yne 9 java maven sonarqube

我目前正在将SonarQube引入大型遗留项目.这意味着已经有数百个警告,在第一步中我想确保没有来自我们的功能分支的新警告.

为实现这一目标,我希望在每个功能分支上运行声纳分析,将其与主分支进行比较,并在引入新警告时提醒提交者.

假设以下情况:

MyProject 1.0-SNAPSHOT是SonarQube上项目的名称和版本.它有100个警告.它代表了develop分支.这leak period是从1天前的分析.这很有效,我可以看到自昨天以来引入了哪些新的警告.

开发人员正在feature/somefeature分支机构.当他们打开拉取请求时,我希望在该分支上运行声纳分析.这工作得很好,但我不能设置leak versionMyProject 1.0-SNAPSHOT从昨天开始,因为这个分支被认为是作为一个完全独立的项目由SonarQube,即使我设置sonar.projectKey为相同的名字,我也试图与玩弄sonar.branch财产.

期望的结果是:

  1. 发展 - > 100警告

  2. feature/somefeature - > 102警告

  3. 在SonarQube仪表板上feature/somefature显示"2个新警告".

可以用声纳本身完成,还是需要使用Sonar REST API编写自己的程序?

Bor*_*ris 6

您应该使用Branch Plugin来分析仅针对新问题的分支.这个插件有一个相应的质量门:

对于短期分支机构,有一种硬编码的质量门,仅关注新问题.

只有在存在新的漏洞或漏洞时才会创建问题.

根据插件文档,所有功能分支都应标识为短期分支.

注意: Branch Plugin在SonarSource下获得许可,并且在非自由开发人员版中可用

  • 我会接受这个答案,因为这是正确的方法.但是,对于其他读这篇文章的人:据我所知,需要Sonar Developer或Enterprise Edition,其定价由项目的代码行计算.在一个大型项目中,使用这个1插件将非常快速地变得非常昂贵. (3认同)