Sonarqube v.4 TFS 任务“发布分析结果”抛出错误“无法获取指标”

Posted

技术标签:

【中文标题】Sonarqube v.4 TFS 任务“发布分析结果”抛出错误“无法获取指标”【英文标题】:Sonarqube v.4 TFS task "Publish Analysis Result" throw error "Could not fetch metrics" 【发布时间】:2018-07-10 16:36:12 【问题描述】:

在 TFS 上,我无法运行任务“发布分析结果”以在 TFS 网页上发布质量门。其他任务“Prepare analysis on SonarQube”和“Run Code Analysis”运行成功。

错误信息是:

[错误][SQ] 无法获取指标

[错误][SQ] 无法获取 ID 'FWK9NiOFibiMfA2L0BHo' 的任务

尽管有错误消息,当我访问 url http://localhost:9000/api/ce/task?id=FWK9NiOFibiMfA2L0BHo 时,我会收到包含任务信息的 json 响应。

【问题讨论】:

您使用什么 SonarQube 版本? SonarQube 版本 4 【参考方案1】:

这似乎是 SonarQube VSTS 扩展的问题:

SonarQube 扩展使用基本身份验证与 SonarQube API 端点,并使用令牌作为用户名,以及 密码为空。 npm 包“请求”(至少是最新版本 2.83.0),不允许空密码并返回“auth()收到无效的用户或密码”。

要解决此问题,应将密码设置为空字符串。

在 SonarSource 修复 VSTS 插件之前,您可以解决 通过在 VSTS 构建机器上手动编辑扩展来发布。 要编辑的文件是:<build location>\_tasks\SonarQubePublish_291ed61f-1ee4-45d3-b1b0-bf822d9095ef\4.0.0\common\helpers\request.js

在第 22 行之后添加一个新行:

options.auth.pass = "";

详情请参考这个类似的帖子:Unable to integrate SonarQube analysis results with VSTS Build Summary

【讨论】:

感谢您的调查。我已经创建了一张票,并将修复它:jira.sonarsource.com/browse/VSTS-134 作为一种解决方法,我认为您可以更新您的 SonarQube 端点定义:再次设置令牌并保存,应该足够了。 @JulienH.-SonarSourceTeam,解决方法对我不起作用。我正在使用 VSTS 托管代理和 SonarCloud。我尝试使用我的令牌创建一个全新的端点并收到相同的错误。 当我应该使用 SonarCloud 扩展时,我正在使用 SonarQube 扩展...哎呀。它可以与 SonarCloud 扩展一起按预期工作。 我确认解决方法不起作用:(我的错。修复即将到来。

以上是关于Sonarqube v.4 TFS 任务“发布分析结果”抛出错误“无法获取指标”的主要内容,如果未能解决你的问题,请参考以下文章

Sonarqube v.4.3.0 VSTS 任务“发布分析结果”抛出错误“无法获取指标”(404)

Sonarqube TFS 任务返回错误 (401) 在一个项目上未经授权,但在其他项目上未授权

##[错误]错误:超出 GC 开销限制 - TFS 构建中的 SonarQube

如何解决运行代码分析任务TFS中文件无法被索引两次错误?

激活FXCop规则时,SonarQube扫描仪在内部部署TFS上失败

SonarQube 5.6 中的 C# 单元测试结果