2016-09-28 60 views
0

我最近在发布过程中集成了sonarqube。我已将泄漏期限设置为整合日期,并规定quality gate定义自泄漏期开始以来应该没有新的问题。Sonarqube在计算新漏洞/漏洞/漏洞时没有遵守git提交日期

问题是,只要文件发生变化,sonarqube开始考虑所有以前的问题作为新问题。这对于大文件尤其有问题,因为正在对文件进行任何更改的人需要回顾性地进行所有更正。我想sonarqube要做的是尊重承诺日期的责任信息和定义new通过比较提交日期与泄漏期限。

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

回答

2

您的用例位于SonarQube Leak Concept的核心位置。您所需要做的就是确保有一个与泄漏期开始相对应的分析,并根据当时已存在的问题确定基线。正确的做法是实际使用sonar.projectDate(请参阅Analysis Parameters)进行初始分析。底线:

  • 退房提交相当于集成你的情况
  • 通过设置sonar.projectDate作为该承诺的日期和sonar.projectVersion基线分析它例如
  • 设置您的泄漏期限为基线
  • 对于所有进一步分析,泄漏将对应于自初始基线以来引入的新问题。遗留问题(在整合之前)将被视为遗留问题,并且不在泄漏期中记录,您的质量门就可以按照您的预期完成工作。

FYI SCM 信息由SonarQube的问题自动assignement以及有关新代码覆盖的标识,但它不能可靠地确定哪些问题是新的或不:想象一个变量在你的代码中定义和使用,如果一个提交消除了它的使用,那么它会在变量定义上产生一个变量未使用的问题,而那个精确的行没有被任何提交所触及。这就是为什么相对于SonarQube首次检测到它们的日期(之前的分析期间),问题被确定为新的,因此上面详细介绍了工作流程。