【问题标题】:Unable to integrate SonarQube analysis results with VSTS Build Summary无法将 SonarQube 分析结果与 VSTS 构建摘要集成
【发布时间】:2018-07-07 14:40:24
【问题描述】:

我在 VSTS 中使用 Prepare、Run 和 Publish 分析任务来运行 SonarQube 分析并发布结果以构建摘要。前两个步骤成功执行,但“发布分析”任务失败,因为它无法获取用于分析 ID 的任务。我收到以下错误消息:

无法获取 ID 'AWE9-wu8-fbfJflhFQ3-' 的任务

VSTS 发布分析任务日志:

2018-01-28T18:15:28.1037139Z ##[debug][SQ] Waiting for task 'AWE9-wu8-fbfJflhFQ3-' to complete.
2018-01-28T18:15:28.1037139Z ##[debug][SQ] API GET: '/api/ce/task' with query "{"id":"AWE9-wu8-fbfJflhFQ3-"}"
2018-01-28T18:15:28.1047138Z ##[debug][SQ] Publish task error: [SQ] Could not fetch task for ID 'AWE9-wu8-fbfJflhFQ3-'
2018-01-28T18:15:28.1047138Z ##[debug]task result: Failed
2018-01-28T18:15:28.1047138Z ##[error][SQ] Could not fetch task for ID 'AWE9-wu8-fbfJflhFQ3-'
2018-01-28T18:15:28.1047138Z ##[debug]Processed: ##vso[task.issue type=error;][SQ] Could not fetch task for ID 'AWE9-wu8-fbfJflhFQ3-'
2018-01-28T18:15:28.1047138Z ##[debug]Processed: ##vso[task.complete result=Failed;][SQ] Could not fetch task for ID 'AWE9-wu8-fbfJflhFQ3-'
2018-01-28T18:15:28.3907147Z ##[section]Finishing: Publish Analysis Result

【问题讨论】:

  • 这是您第一次看到这个错误吗?你改变了什么?同时发布您使用的 SonarQube 版本。
  • 嗨,杰罗恩。我之前使用的是 SonarQube Scanner CLI,但现在它已被弃用,我尝试将这些任务添加到 VSTS CI 管道。我使用的是 SonarQube 5.6.6 版本
  • 如果您在 Web 浏览器中打开 /api/ce/task?id=AWE9-wu8-fbfJflhFQ3- 会发生什么?您是否还可以查看您的 SonarQube 服务器日志(特别是 access.log)以查看请求是否被正确接收,以及响应代码是什么。
  • 任务'AWE9-wu8-fbfJflhFQ3-'好像已经完成了,参考PrepareRun步骤的日志看看有没有意外的问题。
  • @JulienH.-SonarSourceTeam 你好 Julien。当我在浏览器中点击 URL 时,我能够看到响应。我检查了日志,它返回 http 200。下面是日志:52.175.245.235 - - [29/Jan/2018:18:04:26 +0000] "GET /api/metrics/search?f=name&ps=500 HTTP /1.1" 200 11700 "-" "-" 52.175.245.235 - - [29/Jan/2018:18:04:26 +0000] "GET /api/ce/task?id=AWFDF2_V5a2xaxKZBC2l HTTP/1.1" 200 357 " -" "-"

标签: sonarqube azure-devops devops sonarqube-scan


【解决方案1】:

我看到了与 Vignesh 完全相同的问题。运行 SonarQube 6.7.1 和最新版本的 VSTS SonarQube 扩展。

我发现了问题所在;它位于 SonarQube VSTS 扩展(准备、分析和发布)中。

SonarQube 扩展使用基本身份验证与 SonarQube API 端点通信,并使用令牌作为用户名,密码为空。 npm 包 'request'(至少最新版本 2.83.0),不允许空密码并返回 'auth() received invalid user or password'。

要修复它,密码应该设置为空字符串。

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

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

options.auth.pass = "";

最终结果应该是这样的:

var options = {
    auth: endpoint.auth
};
if (query) {
    options.qs = query;
    options.useQuerystring = true;
}
options.auth.pass = "";
request.get(__assign({ method: 'GET', baseUrl: endpoint.url, uri: path, json: true }, options), function (error, response, body) {

我不做任何保证,但这对我有用。

【讨论】:

  • 我正在调查这个。想知道一些事情(因为这似乎不系统,例如无法使用 VSTS + SonarCloud 重现:强制身份验证在您的 SonarQube 设置中打开了吗?(安全部分)
  • 不,它没有打开。还是有问题。
  • 明白,这是一个疯狂的猜测,实际上是一个错误的猜测。实际问题(和相关解决方案)在@Julien H. answer中进行了描述。
【解决方案2】:

这确实是由向请求库传递空密码引起的。 已部署修复程序(SonarQube 扩展的 4.0.1 版,发布任务的 4.0.1 版)。见https://jira.sonarsource.com/browse/VSTS-134

【讨论】:

    【解决方案3】:

    我们使用的是4.0.1版本的TFS扩展,故障依旧。

    2018-02-07T10:34:41.7065486Z ##[debug][SQ] Waiting for task 'AWFv1Mcg5obW39zt_5IE' to complete.
    2018-02-07T10:34:41.7065486Z ##[debug][SQ] API GET: '/api/ce/task' with query "{"id":"AWFv1Mcdgfdg39zt_5IE"}"
    2018-02-07T10:34:41.7690509Z ##[debug][SQ] Publish task error: [SQ] Could not fetch task for ID 'AWFv1Mcdgfdg39zt_5IE'
    2018-02-07T10:34:41.7690509Z ##[debug]task result: Failed
    2018-02-07T10:34:41.7690509Z ##[error][SQ] Could not fetch task for ID 'AWFv1Mcdgfdg39zt_5IE'
    2018-02-07T10:34:41.7690509Z ##[debug]Processed: ##vso[task.issue type=error;][SQ] Could not fetch task for ID 'AWFv1Mcdgfdg39zt_5IE'
    2018-02-07T10:34:41.7690509Z ##[debug]Processed: ##vso[task.complete result=Failed;][SQ] Could not fetch task for ID 'AWFv1Mcdgfdg39zt_5IE'
    

    See screenshot here

    【讨论】:

    • @Julien H. - SonarSource 团队 在我们的案例中问题没有解决。请参阅我 2 月 7 日 12:1 的帖子
    猜你喜欢
    • 2018-10-18
    • 2019-10-24
    • 1970-01-01
    • 2019-10-13
    • 2018-10-13
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多