You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sonar Gerrit Plugin忽略noIssuesScore及Pipeline语法生成器故障求助

关于Sonar Gerrit Plugin的两个问题解决方案

我来帮你梳理下这两个问题,都是这个插件在Jenkins Pipeline环境下的常见痛点:

问题1:noIssuesScore配置被忽略,无违规时自动发布+1评分

从你的配置来看,你期望无问题时提交0分,但实际得到的是+1,这个问题大概率和参数类型以及插件的版本逻辑有关:

  1. 参数类型不匹配:你当前把noIssuesScore和issuesScore设为字符串(带引号的'-1'、'0'),但插件的Pipeline参数实际上期望的是整数类型。当插件解析字符串类型的评分时,可能会 fallback 到默认的+1值。
    尝试修改配置,去掉引号,用数字类型:

    sonarToGerrit(
        sonarURL: env.SONAR_HOST_URL,  // 注意去掉env后面的引号,Jenkins环境变量直接用env.变量名即可
        severity: 'INFO',
        postScore: true,
        category: 'Code-Review',
        issuesScore: -1,
        noIssuesScore: 0
    )
    
  2. 插件版本bug:虽然你用的是最新的2.1版本,但这个版本可能存在noIssuesScore参数的逻辑漏洞。可以尝试两个方向:

    • 降级到2.0版本测试,看是否参数能正常生效;
    • 查看插件的更新日志(在Jenkins插件管理页面就能看到),确认2.1版本是否有相关的bug记录。
  3. 额外排查点:

    • 确认SonarQube扫描结果确实没有任何INFO及以上级别的问题(因为你设置了severity: 'INFO',只要有INFO级别的问题,插件就会触发issuesScore);
    • 检查Jenkins账号在Gerrit的权限,确保它有修改Code-Review评分的权限(不过你能得到+1,说明权限是足够的)。

问题2:Pipeline语法生成器输出异常

这个问题是很多自定义Jenkins插件的通病——Pipeline语法生成器对非核心插件的步骤支持不完善,无法正确生成可直接使用的代码,只能手动编写。

你可以直接忽略生成器的输出,按照插件官方文档的参数说明手动编写步骤,就像上面给出的示例一样。另外,注意env.'SONAR_HOST_URL'的写法是错误的,Jenkins里访问环境变量应该用env.SONAR_HOST_URL(不需要引号包裹变量名)。

额外建议

如果修改参数类型后还是无法解决评分问题,你可以查看Jenkins的系统日志(Manage Jenkins → System Log),搜索SonarToGerritPublisher相关的日志,里面会有参数解析和评分提交的详细过程,能帮你定位具体的问题原因。

内容的提问来源于stack exchange,提问作者Max N.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:22:15