【问题标题】:Sonar Gerrit plugin not reporting results声纳 Gerrit 插件不报告结果
【发布时间】:2018-07-20 07:34:06
【问题描述】:

我们利用管道,构建成功完成后,我们正在运行以下命令:

bat "mvn sonar:sonar -B -s ${buildSettings} -Dsonar.analysis.mode=preview -Dsonar.skipDesign=true -Dsonar.report.export.path=sonar-report.json"

sonarToGerrit(severity: 'Major', postScore: true, category: 'Code-Review', newIssuesOnly: true, issuesScore: '0', noIssuesScore: '0', changedLinesOnly: true)

下面的构建日志显示它发现了很多问题,但要评论的问题是 0。

Build log

其他帖子表明它可能找不到该报告,但我不认为是这种情况,因为它发现了许多问题。任何管道配置建议将不胜感激。

我们正在使用 Sonar Gerrit 插件版本 2.2.1、Gerrit Trigger 2.27.3 和 Jenkins Enterprise 版本是 2.60.3.1。

【问题讨论】:

  • 有哪些版本(Gerrit、Jenkins、sonar-gerrit)?
  • 我们使用 Sonar Gerrit 插件版本 2.2.1、Gerrit Trigger 2.27.3 和 Jenkins Enterprise 版本是 2.60.3.1 和 Gerrit-2.10.2
  • 您确定在更改的行中有“重大”新问题吗?因为您要求严重性=Major、newIssuesOnly=true 和 changedLinesOnly=true。
  • 感谢您的回复,我打开 JSON 报告,发现 10+ MAJOR 新问题。我尝试使用以下参数运行它只是为了让它发布任何内容:“sonarToGerrit(severity: 'INFO', postScore: true, category: 'Code-Review', newIssuesOnly: false, issuesScore: '0' , noIssuesScore: '0', changedLinesOnly: false)”但它总是回来说它发现了问题但没有评论任何问题。完整的报告是 14mb,想知道它是否太大或者我应该使用不同的类别?
  • sonargerrit 报告“有待评论的问题”和“分数计算中的问题”是否仍然等于 0?

标签: sonarqube jenkins-plugins jenkins-pipeline gerrit-trigger sonar-gerrit


【解决方案1】:

与您的问题有关的最常见情况与 SonarQube 检查整个项目有关,无论在特定更改中进行了多少更改。创建新报告时,它会将结果与存储在其数据库中的结果(与以前在预览以外的模式中发现的问题)进行比较。因此,声纳将之前不知道的所有问题标记为新问题(如果您根本不将此信息存储在 SonarQube 中 - 所有问题都将被标记为新问题)。但是 sonar-gerrit 插件只能将问题发布到受它正在验证的更改影响的文件中。因此,即使您将设置“newIssuesOnly”和“changedLinesOnly”设置为“false”,文件中不受更改影响的所有问题都将被忽略。

很快,请检查您的声纳报告中标记为“isNew”="true" 的问题是否已在您提交的提交中实际更改(对于 changedLinesOnly=true)或位于更改的文件中(对于 changedLinesOnly = false)正在尝试检查。

另一个可能的原因是项目配置设置。如果您的文件是子模块的一部分,您需要将子模块名称包含到项目基目录集。或者您可能想尝试使用 “允许自动匹配” 功能。该功能尝试自动将 SonarQube 模块与 Gerrit 名称匹配(自 2.1 起可用)。


与您的问题无关的关于您的管道代码的建议:

目前,严重性(和其他枚举值)的设置识别是区分大小写的。事实上,插件会忽略您的“主要”设置,因为它无法识别它,并将其替换为默认的“信息”值。

另一件事,我不明白为什么在设置“issuesScore”= 0 和“noIssuesScore”=0 时将“postScore”设置为 true。为简单起见,您可以设置 postScore=false 并跳过这些设置以及“类别”。

另外,如果你使用 2.0 以上版本的插件,请注意 API 略有变化,现在使用下一个结构:

sonarToGerrit (
        reviewConfig: [ 
            issueFilterConfig: [
                severity: 'MAJOR', 
                newIssuesOnly: false, 
                changedLinesOnly: false
                ], 
            noIssuesTitleTemplate: 'Your text here',
            someIssuesTitleTemplate: 'Your text here',
            issueCommentTemplate: 'Your text here'
        ]
    )

虽然您的代码也应该可以工作(插件确实支持以前的版本),但存在错误的可能性更大。

【讨论】:

    【解决方案2】:

    Sonar-Gerrit jenkins 插件也面临同样的问题。从 Jenkins 插件站点下载它。使用 Sonar-Gerrit 插件 2.2.1,并针对 jenkins 工作区分析声纳扫描。

    对于一个示例,仅更改了一个文件并将项目基础目录提供到该文件的路径,并在问题模式下运行声纳分析。

    Gerrit 中没有通过日志加载问题

    报告已加载并包含 759 个问题 待评论问题:0 分数计算涉及的问题:0 审核已发送

    【讨论】:

    • 这不是问题的答案,应该是评论。
    • 对不起,我无法评论上一篇文章,因此在这里添加。
    • 我已将其作为单独的问题发布。stackoverflow.com/questions/49026039/…。谢谢
    猜你喜欢
    • 2015-12-25
    • 2018-08-08
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2023-04-01
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多