我目前正在将SonarQube引入大型遗留项目。这意味着已经有数百个警告,在第一步中我想确保来自我们的功能分支的没有新的警告。
为实现这一目标,我希望在每个功能分支上运行声纳分析,将其与主分支进行比较,并在引入新警告时提醒提交者。
假设以下情况:
MyProject 1.0-SNAPSHOT
是SonarQube上项目的名称和版本。它有100个警告。它代表develop
分支。 leak period
是从1天前开始的分析。这非常有效,我可以看到自昨天以来引入了哪些新警告。
开发人员正致力于feature/somefeature
分支机构。当他们打开拉取请求时,我希望在该分支上运行声纳分析。这样可以正常工作,但是我无法从昨天开始将leak version
设置为MyProject 1.0-SNAPSHOT
,因为SonarQube将此分支视为完全独立的项目,即使我将sonar.projectKey
设置为相同的名称,我也尝试使用sonar.branch
属性。
期望的结果是:
develop - > 100个警告
feature / somefeature - > 102警告
在feature/somefature
显示的#SenarQube信息中心" 2个新警告"。
可以用声纳本身完成,还是需要使用Sonar REST API编写我自己的程序?
答案 0 :(得分:6)
您应该使用Branch Plugin来分析仅针对新问题的分支。这个插件有一个相应的质量门:
对于短命分支,有一种硬编码的质量门,只关注新问题。
只有在出现新的漏洞或漏洞时才会创建问题。
根据插件文档,所有功能分支都应标识为 短期分支 。
注意:分支插件已获得SonarSource许可,可在非自由Developer Edition
中使用