SonarQube Github插件没有写问题来提取请求

时间:2016-08-06 08:28:36

标签: github sonarqube teamcity sonarqube-msbuild-runner

问题描述

我已经设置了CI工具(Teamcity),每次在Github中发出拉取请求时,都会对项目运行SonarQube预览分析。为了测试一切正常,我在提交拉取请求之前向代码库添加了一些问题。预览分析运行时没有任何问题,并且拉取请求随着摘要中的以下内容进行更新:

sonarqube - SonarQube报告没有问题

问题是我在代码库中引入的新问题都没有写成拉取请求的内联注释。

调试步骤和日志

我第二次运行预览分析, sonar.verbose 属性设置为 true ,将日志级别设置为DEBUG。

我用来使用Teamcity的MSBuild Runner执行分析的命令如下:

MSBuild.SonarQube.Runner.exe begin /k:<project_key> /n:"<project_name>" /v:%build.number% /d:sonar.analysis.mode=preview /d:sonar.github.oauth="<personal_access_token>" /d:sonar.github.pullRequest="<hard_coded_PR_no>" /d:sonar.github.repository="<organization>/<repo_name>" /d:sonar.issuesReport.console.enable=true /d:sonar.verbose=true

当分析运行时,我可以从日志中看到SonarQube正在拾取问题(参见下面的日志)。因此,似乎后期作业Github Pull Request Issue Publisher存在问题。以下是日志的摘录:

Working dir: D:\BuildAgent\work\<some_hash>\.sonarqube\out\.sonar
[08:57:01][Step 8/11] INFO: Source encoding: UTF-8, default locale: en_US
[08:57:01][Step 8/11] INFO: Sensor XmlFileSensor
[08:57:01][Step 8/11] INFO: Sensor XmlFileSensor (done) | time=0ms
[08:57:01][Step 8/11] INFO: Load server issues
[08:57:01][Step 8/11] INFO: Load server issues (done) | time=117ms
[08:57:01][Step 8/11] INFO: Performing issue tracking
[08:57:01][Step 8/11] INFO: 552/552 components tracked
[08:57:01][Step 8/11] INFO: Console report is deprecated. Use SonarLint CLI to have local reports of issues
[08:57:01][Step 8/11] INFO: 
[08:57:01][Step 8/11] 
[08:57:01][Step 8/11] -------------  Issues Report  -------------
[08:57:01][Step 8/11] 
[08:57:01][Step 8/11]        +15 issues
[08:57:01][Step 8/11] 
[08:57:01][Step 8/11]         +4 blocker
[08:57:01][Step 8/11]         +1 critical
[08:57:01][Step 8/11]        +10 major
[08:57:01][Step 8/11] 
[08:57:01][Step 8/11] -------------------------------------------
[08:57:01][Step 8/11] 
[08:57:01][Step 8/11] 
[08:57:01][Step 8/11] INFO: ANALYSIS SUCCESSFUL
[08:57:01][Step 8/11] INFO: Executing post-job GitHub Pull Request Issue Publisher
[08:57:02][Step 8/11] INFO: ------------------------------------------------------------------------
[08:57:02][Step 8/11] INFO: EXECUTION SUCCESS
[08:57:02][Step 8/11] INFO: ------------------------------------------------------------------------
[08:57:02][Step 8/11] INFO: Total time: 35.242s
[08:57:02][Step 8/11] INFO: Final Memory: 48M/172M
[08:57:02][Step 8/11] INFO: ------------------------------------------------------------------------
[08:57:03][Step 8/11] The SonarQube Scanner has finished
[08:57:03][Step 8/11] 08:57:03.022  Creating a summary markdown file...
[08:57:03][Step 8/11] 08:57:03.023  Analysis results: http://<sonarqube_server>/dashboard/index/<project_name>
[08:57:03][Step 8/11] Post-processing succeeded.
[08:57:03][Step 8/11] Process exited with code 0

Github设置

我在我的用户上添加了一个个人访问令牌,用作 sonar.github.oauth 属性的输入。我的用户拥有相关回购的所有权限。令牌已被赋予“public_repo”范围,以便能够根据documentation编写内联注释并更新拉取请求 - 只有前者永远不会完成。

插件和工具的版本

  • SonarQube 5.6
  • C#插件(版本5.3.2)
  • MSBuild Runner插件(版本1.1)
  • Github插件(版本1.3)
  • TeamCity(版本9.1.7)
  • Github Enterprise(版本2.7)

我错过了什么?我还没有尝试过的一件事是创建一个专门的技术Github用户,而不是使用我自己的用户和个人访问令牌。这可能是造成这个问题的原因吗?

1 个答案:

答案 0 :(得分:0)

使用TeamCity&amp; amp;设置PR集成时遇到了同样的问题。 SonarQube。最后,事实证明问题在于TeamCity如何提取源代码并将其复制到构建代理。

确保完成以下操作:

  1. 在“VCS高级设置”下,确保将VCS签出模式设置为“始终签出代理上的文件”。

  2. 需要将身份验证方法设置为“密码”,并提供以下详细信息: 用户名:sonarqube-spin 密码:**********

  3. 获取网址需要设置为https而不是git。这是因为我们需要使用密码身份验证方法直接在构建代理上执行git pull。
  4. 确保取消选中默认分支中的允许构建,并检查从其他分支中排除默认分支更改。 (这不是必需的,但可以确保除PR分支之外不构建任何其他内容。
  5. 在TeamCity构建代理上安装了JDK 8(确保在安装后重新启动构建代理)
  6. 我不确定这会解决您的问题,但这对我们有用。