无法将SonarQube分析结果与VSTS构建摘要

时间:2018-01-28 22:43:31

标签: sonarqube azure-devops devops sonarqube-scan

我正在使用VSTS中的准备,运行和发布分析任务来运行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

3 个答案:

答案 0 :(得分:2)

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

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

SonarQube扩展使用基本身份验证与SonarQube API端点进行通信,并将令牌用作用户名,密码用作null。 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 = "";

结果应该是这样的:

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) {

我不保证,但这对我有用。

答案 1 :(得分:1)

我们在版本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

答案 2 :(得分:0)

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