无法将SonarQube分析结果与VSTS生成摘要集成

无法将SonarQube分析结果与VSTS生成摘要集成,sonarqube,azure-devops,devops,sonarqube-scan,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-28T

我在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

我看到的问题和维格尼什完全一样。正在运行SonarQube 6.7.1和最新版本的VSTS SonarQube扩展

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

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

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

在SonarSource修复VSTS插件之前,您可以通过在VSTS生成计算机上手动编辑扩展来解决此问题。要编辑的文件是:
\\u tasks\sonaQubePublish\u 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) {

我不提供任何保证,但这对我来说是有效的。

这确实是由于向请求库传递了一个空密码造成的。
已部署修复程序(SonarQube扩展的版本4.0.1,发布任务的版本4.0.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'

这是您第一次看到此错误吗?你改变了什么?同时发布您使用的SonarQube版本。HI Jeroen。我之前使用过SonarQube Scanner CLI,但现在它已被弃用,我尝试将这些任务添加到VSTS CI管道中。我正在使用SonarQube 5.6.6版本如果在web浏览器中打开/api/ce/task?id=AWE9-wu8-fbfJflhFQ3-会发生什么?您还可以查看SonarQube服务器日志(特别是access.log)以查看请求是否正确接收,以及响应代码。任务“AWE9-wu8-fbfJflhFQ3-”似乎已完成,请参阅
Prepare
Run
步骤的日志,检查是否存在任何意外问题。@JulienH.-SonarSourceTeam Hi 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”--“我正在研究这个问题。想知道一些事情(因为这似乎不是系统性的,例如无法使用VSTS+复制):在SonarQube设置中是否启用了强制身份验证?(安全部分)不,它没有启用。仍然存在问题。明白,这是一个猜测,事实上是一个错误的猜测。实际问题(及相关解决方案)如@Julien H.answer中所述。@Julien H.-SonarSource团队在我们的案例中问题没有得到解决。请参阅我2月7日12:1的帖子