【问题标题】:Sonarqube not honoring git commit date while calculating new bugs/vulnerabilities/leaksSonarqube 在计算新的错误/漏洞/泄漏时不遵守 git 提交日期
【发布时间】:2016-09-28 05:19:21
【问题描述】:

我最近在我们的发布过程中集成了sonarqube。我已将泄漏期设置为集成日期,并在quality gate 定义中规定,自泄漏期开始以来,新问题应为零。

问题在于,只要文件发生更改,sonarqube 就会开始将所有以前的问题视为新问题。这对于大文件尤其成问题,因为对文件进行任何更改的人需要回顾性地进行所有更正。我想要 sonarqube 做的是从责任信息中兑现提交日期,并通过将提交日期与泄漏期进行比较来定义 new

如何做到这一点?我正在使用sonarqube 6.0

【问题讨论】:

    标签: java coding-style sonarqube code-standards


    【解决方案1】:

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

    • 在您的情况下查看与 integration 对应的提交
    • 通过将 sonar.projectDate 设置为提交日期并将 sonar.projectVersion 设置为 baseline 来分析它
    • 将您的泄漏期设置为基线
    • 对于所有进一步的分析,泄漏将对应于自初始基线以来引入的新问题。遗留问题(集成之前)将被视为遗留问题,不计入泄漏期,然后您的质量门就可以按照您的预期完成工作。

    FYI SCM blame 信息被 SonarQube 用于自动分配问题和识别 新代码 的覆盖率,但它无法可靠地确定哪些问题是新与否:想象一个在您的代码中定义和使用的变量,如果提交删除了它的使用,那么它会在变量定义上引发一个变量未使用问题,而该精确行没有被任何人触及犯罪。这就是为什么问题相对于 SonarQube 首次检测到它们的日期(在之前的分析中)被确定为新问题,因此上面详述了工作流程。

    【讨论】:

      猜你喜欢
      • 2021-06-05
      • 2022-01-17
      • 2018-10-12
      • 2017-06-05
      • 1970-01-01
      • 2020-06-17
      • 2017-05-23
      • 1970-01-01
      • 2019-03-06
      相关资源
      最近更新 更多