Kus*_*han 1 tfs sonarqube sonarqube-scan
过去 2 个月,我们一直在 TFS 2017 服务器上使用 Sonarqube。总的来说,它非常有帮助,但几周前,由于 Sonarqube 返回 401 错误(未经授权),我们的一个构建开始失败。
2017-10-12T15:11:19.7921253Z ##[error]16:11:19.729 无法请求和解析“ http://sonarqube.local:9000/api/settings/values?component=MYPROJECTNAME%3Amaster ”:远程服务器返回错误:(401) 未经授权。
2017-10-12T15:11:19.7921253Z ##[error]16:11:19.729 连接到 SonarQube 服务器时无法授权。检查您的凭据,然后重试。
奇怪的是,来自其他项目的其他构建使用相同的 API 令牌运行得非常好。我什至在失败的项目中创建了一个新的 Sonarqube 端点,然后在一个已知的好项目中再次创建了一个新的 Sonarqube 端点 - 再次在两者上使用相同的 API 密钥 - 只是为了发生同样的事情。一个失败并出现上述错误,另一个没问题。
我认为这可能是 sonarqube 本身中的一个安全/权限选项,所以我尝试创建一个全新的 sonarqube 项目,但再次 - 一个 TFS 项目失败,而另一个成功时两者都指向这个新项目。
我怀疑这个问题源于 TFS 项目的安全设置,但是在将好的项目与坏的项目进行比较之后,我没有想到可能是什么原因 - 它们似乎设置相同。我在好的构建和坏的构建上都启用了调试并比较了输出。据我所知,两者之间唯一真正的区别是“失败”构建是从某个地方获取 sonar.password 而好的构建不是:
好的:
2017-10-12T15:13:07.1067146Z ##[debug]处理:##vso[task.setvariable variable=MSBuild.SonarQube.ServerPassword;]
2017-10-12T15:13:07.2785974Z ##[debug] 参数 = /c ""Y:\2017_agent_work_tasks\SonarQubeScannerMsBuildBegin_15b84ca1-b62f-4a2a-a403-863b703003-863b777203-863b777203-863b777203-863.开始 /k:"MYPROJECTNAME" /n:"MYPROJECTNAME" /v:"20171012.7" /d:sonar.host.url="http://sonarqube.local:9000/" /d:sonar.login=*** ***** /d:sonar.cs.vscoveragexml.reportsPaths="***.coveragexml" /d:sonar.branch="master""
坏的:
2017-10-12T15:11:19.5733714Z ##[debug]Processed: ##vso[task.setvariable variable=MSBuild.SonarQube.ServerPassword;]********
2017-10-12T15:11:19.5733714Z ##[debug] 路径:Z:\2017_agent_work_tasks\SonarQubeScannerMsBuildBegin_15b84ca1-b62f-4a2a-a403-89b77\Sonar10MSQube-Sonar10MSQube10301MSQube-Sonar10MSQube-2017_agent_work_tasks\SonarQubeScannerMsBuildBegin_15b84ca1 :11:19.5733714Z ##[debug] 参数:开始 /k:"MYPROJECTNAME" /n:"MYPROJECTNAME" /v:"20171012.3" /d:sonar.host.url="http://sonarqube.local:9000 /" /d:sonar.login=******** /d:sonar.password=******** /d:sonar.cs.vscoveragexml.reportsPaths="***.coveragexml" /d:sonar.branch="master"
(注意:虽然在这种情况下好/坏在不同的构建代理上运行,但代理是相同的,我已经确认“好”项目在我们所有的代理上都有效,而“坏”项目在所有代理上都失败并产生相同的结果代理)。
但是,我不知道它从哪里获取此密码 - 存储库中没有 sonar.properties 文件。可以肯定的是,我克隆了失败的 TFS 项目的存储库,将它推送到一个工作 TFS 项目的存储库中,复制了构建并且它可以工作。
我已经检查了 Sonarqube 本身的日志,但它们的帮助不大
我可能错过了什么?
TFS 2017 是 15.117.26714.0
声纳是 6.5.0.27846
Sonarqube 任务版本为 3.0.2
编辑:我设法通过编辑构建任务而不将 sonar.password 插入命令行来获得临时解决方法,这有效。这确实证明根本问题是从“某处”提取这个神秘密码的任务,但我仍然不知道它会在哪里提取。我找不到有关设置的太多信息MSBuild.SonarQube.ServerPassword
| 归档时间: |
|
| 查看次数: |
3322 次 |
| 最近记录: |