SonarCloud 分析任务在 Azure DevOps PR 管道中失败

时间:2021-05-12 17:44:37

标签: azure-devops azure-pipelines sonarcloud

我在 Azure DevOps 中有一个由 PR 请求触发的管道。此管道中有三个 SonarCloud 任务 - 在 SonarCloud 上准备分析(我的项目构建步骤在这里),运行代码分析,然后发布质量门结果。

当这个管道由 PR 触发时,一切正常,直到进入运行代码分析任务,然后失败并显示以下错误消息:

INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 9.173s
INFO: Final Memory: 7M/48M
INFO: ------------------------------------------------------------------------
##[error]ERROR: Error during SonarScanner execution
ERROR: Error during SonarScanner execution
##[error]ERROR: Not authorized. Please check the properties sonar.login and sonar.password.
ERROR:
ERROR: Not authorized. Please check the properties sonar.login and sonar.password.
ERROR: 
##[error]The SonarScanner did not complete successfully
The SonarScanner did not complete successfully
##[error]18:32:43.506  Post-processing failed. Exit code: 1
18:32:43.506  Post-processing failed. Exit code: 1

事情是这样的:每当这个相同的管道不是由 PR 触发时,无论是手动还是按每日计划自动触发,它都会在任何分支上正常运行和通过。如果我为被拉入的分支触发管道(不是通过 PR),它就会运行并通过。

为什么只有在 PR 触发时授权才会失败?!为什么它不使用来自 SonarCloud 的 PAT 令牌与手动触发时 SAME 管道使用的相同?

2 个答案:

答案 0 :(得分:0)

<块引用>

为什么只有在 PR 触发时授权才会失败?!为什么它不使用来自 SonarCloud 的 PAT 令牌与手动触发时 SAME 管道使用的相同?

根据描述,似乎PAT没有足够的权限。

您可以尝试使用完全访问权限更新 PAT 以进行测试:

enter image description here

更新 SonarCloud 中的 PAT。

您可以查看this document了解更多详情。

答案 1 :(得分:0)

我现在找到了答案,问题是 Azure DevOps 发布的 PAT 没有设置在 SonarCloud 上的正确位置。我把它放在 [SonarCloud 项目] -> 管理 -> 常规设置 -> 拉取请求 -> 个人访问令牌,实际上它应该存储在 [SonarCloud 组织] -> 管理 -> 组织设置 -> Azure DevOps 连接management -> Personal Access Token,如下图:

SonarCloud Dashboard

相关问题