【问题标题】:SonarQube Leak Period between Branches or Projects分支机构或项目之间的 SonarQube 泄漏期
【发布时间】:2018-05-07 14:24:39
【问题描述】:

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

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

假设以下情况:

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

开发人员正在开发feature/somefeature 分支。当他们打开拉取请求时,我希望在该分支上运行声纳分析。这工作正常,但我不能从昨天开始将 leak version 设置为 MyProject 1.0-SNAPSHOT,因为这个分支被 SonarQube 视为一个完全独立的项目,即使我将 sonar.projectKey 设置为同名,我也尝试过使用sonar.branch 属性。

期望的结果是:

  1. 开发 -> 100 条警告

  2. feature/somefeature -> 102 条警告

  3. feature/somefature 的 SonarQube 仪表板上显示“2 个新警告”。

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

【问题讨论】:

  • 是的,但我没有找到符合我要求的插件
  • @enp4yne,你有没有设法通过 Sonar REST API 解决它?
  • @StasKolodyuk 是的,我编写了一个小的 node.js 应用程序来满足我的需要。您可以给我发消息了解详细信息(我无法分享,因为它是我们的应用程序特有的)

标签: java maven sonarqube


【解决方案1】:

您应该使用Branch Plugin 以便仅分析分支以查找新问题。这个插件有一个相应的质量门:

对于短命的分支,有一种硬编码的质量门,只关注新问题。

只有在出现新的错误或漏洞时才会创建问题。

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

注意: Branch Plugin 在SonarSource 下获得许可,并且在非免费Developer Edition 中可用

【讨论】:

  • 我会接受这个答案,因为这是正确的方法。但是,对于其他阅读本文的人:据我所知,您需要 Sonar Developer 或 Enterprise Edition,其定价由项目的代码行计算。在大型项目中,使用这 1 个插件很快就会变得非常昂贵。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 2011-04-25
相关资源
最近更新 更多