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

最佳答案

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

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

SonarQube 扩展使用基本身份验证与 SonarQube API 端点通信,并使用 token 作为用户名,密码为空。
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) {

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

关于sonarqube - 无法将 SonarQube 分析结果与 VSTS 构建摘要集成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48492160/

10-13 09:22