Sonarqube在计算新bug /漏洞/泄漏时不遵守git提交日期



我最近在我们的发布过程中集成了sonarqube。我将泄漏期设置为集成日期,并在quality gate定义中强制要求自泄漏期开始以来应该没有新问题。

问题是每当文件中有更改时,sonarqube开始将所有以前的问题视为新问题。对于大文件来说,这尤其成问题,因为在文件中进行任何更改的人需要回顾性地进行所有更正。我希望sonarqube所做的是尊重来自责备信息的提交日期,并通过比较提交日期和泄漏周期来定义new

如何使这成为可能?我使用sonarqube 6.0

您的用例是SonarQube泄漏概念的核心。你所需要做的就是确保有一个分析,它对应于泄漏期的开始,并将根据已经存在的问题设置基线。正确的方法是使用声纳。projectDate(参见分析参数)用于初始分析。底线是:

  • 签出与集成相对应的提交
  • 通过设置声纳进行分析。projectDate作为提交和声纳的日期。projectVersion基线,例如
  • 将泄漏周期设置为基线
  • 对于所有进一步的分析,泄漏将对应于自初始基线以来引入的新问题。遗留问题(集成之前)将被视为遗留问题,不计入泄漏期,然后您的质量闸门可以按您的期望完成工作。

仅供参考SCM blame信息被SonarQube用于自动分配问题和识别新代码上的覆盖率,但是它不能可靠地确定哪些问题是新的或不是:想象一个变量在你的代码中定义和使用,如果一个提交删除了它的使用,那么它会在变量定义上引发一个变量未使用的问题,而那个精确的行没有被任何提交触及。这就是为什么相对于SonarQube第一次检测到它们的日期(在之前的分析期间),Issues被确定为New的原因,因此上面详细介绍了工作流。

最新更新