来自 VSTS/TFS Online for Sonar analysis step 的 prem Sonar Server 访问问题

On prem Sonar Server access issue from VSTS/TFS Online for Sonar analysis step

我们正在尝试在 VSTS/TFS Online 中添加 Sonar pre 和 post 构建步骤,如此处和此处所述。两者都是来自 Sonar 和 MS 的非常好的文档。以下是遵循的步骤
1. 暴露内部 Sonar(托管在公司防火墙内)端点,我们使用登录凭据测试成功
2. 在 VSTS 中创建具有特殊 Sonar 端点的端点。

两个选项中 -

  1. 使用通用端点 - 如果我们选择使用允许用户名和密码的通用端点创建,Sonar Build 步骤无法识别下拉列表中的端点,最坏的情况是无法启用保存按钮 :(

  2. 使用 Sonar 端点 - 为了使其工作,必须创建允许基于令牌的访问的 Sonar 端点 - 为用户创建令牌,提供对用户 ID 的所有项目访问权限

但不知何故,声纳开始分析从未完成,但在一段时间后出错。从日志消息(下面复制)来看,它看起来像是 401 未经授权的问题

是否可以从 VSTS/TFS 在线访问 Prem Sonar 服务器以进行 Sonar 构建步骤?也不确定基于天气令牌的访问是否有效或其他

仅供参考 - 从市场在线为 TFS 安装声纳扩展

提前致谢

----------- Error Log ---------------
2017-01-25T12:14:16.9334904Z SonarQube Scanner for MSBuild 2.2
2017-01-25T12:14:16.9334904Z Default properties file was found at     D:\a\_tasks\SonarQubeScannerMsBuildBegin_15b84ca1-b62f-4a2a-a403-89b77a063157.0.0\SonarQubeScannerMsBuild\SonarQube.Analysis.xml
2017-01-25T12:14:16.9334904Z Loading analysis properties from D:\a\_tasks\SonarQubeScannerMsBuildBegin_15b84ca1-b62f-4a2a-a403-89b77a063157.0.0\SonarQubeScannerMsBuild\SonarQube.Analysis.xml
2017-01-25T12:14:16.9334904Z Pre-processing started.
2017-01-25T12:14:16.9334904Z Preparing working directories...
2017-01-25T12:14:16.9334904Z SonarQube Scanner for MSBuild 2.2
2017-01-25T12:14:16.9334904Z 12:14:16.484  Updating build integration targets...
2017-01-25T12:14:16.9334904Z 12:14:16.501  Fetching analysis configuration settings...
2017-01-25T12:14:17.4377059Z ##[error]
2017-01-25T12:14:17.5379198Z ##[error]Unhandled Exception: System.Net.WebException: The remote server returned an error: (401) Unauthorized.
2017-01-25T12:14:17.5379198Z ##[error]at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
2017-01-25T12:14:17.5379198Z ##[error]at System.Net.WebClient.DownloadString(Uri address)
2017-01-25T12:14:17.5379198Z ##[error]at System.Net.WebClient.DownloadString(String address)
2017-01-25T12:14:17.5379198Z ##[error]at SonarQube.TeamBuild.PreProcessor.WebClientDownloader.Download(String url)

首先,关于端点,以前只能使用 Generic Endpoint,但从 v2 开始,我们决定转向特定的 SonarQube Endpoint,因此决定放弃对通用端点的支持。

我们还决定只支持基于令牌的身份验证,因为我们坚信这比 username/password 更安全。

最后,根据日志和您的描述,我认为您的令牌没有正确复制到 SonarQube Endpoint。根据您的浏览器,它可能在末尾添加了 space。您可以通过 运行 本地分析来测试您的令牌是否有效(遵循此 tutorial)。如果 begin 部分成功,则无需继续。

请随时告诉我们令牌是否正确,以便我们深入挖掘。