使用SonarCloud

时间:2018-02-15 19:55:48

标签: c# github sonarqube pull-request sonar-runner

我想使用SonarQube来分析对我的项目做出的任何拉取请求(PR)。

几点快点:

  • 我的项目托管在Github上,它是公开的,用C#编写,我正在使用Appveyor进行持续集成(CI);
  • 我正在使用SonarCloudSonarQube的公共实例)进行代码质量检查,并且它已经在分析内部 PR(即PR已制定)方面做得非常出色从主存储库,例如,在dev分支上合并master分支;;
  • 我希望这可以分析外部PR(即使用我的项目的任意分叉制作的PR),这可以使用SonarQube Github plugin;
  • 最重要的是:我不会将我的API密钥放在任何公共文件上,而Appveyor也不会在公共PR上公开我的安全令牌

鉴于这些要点,这就是我所做的:

  • 创建了一个机器人并给了我对我的仓库的写入权限(正如here所述);
  • 在sonarcloud上,在Administration -> Settings -> Pull Requests (Alpha)下,我使用机器人的令牌设置Authentication token并使用Repository identifier格式设置<Organization>/<Repo>我的回购地址;
  • 更新项目的appveyor.yml文件,以便对所有PR运行SonarQube分析;类似于以下内容:

 

build_script: choco install "msbuild-sonarqube-runner" -y MSBuild.SonarQube.Runner.exe begin /k:"REPO" /o:"ORGANIZATION" /d:"sonar.host.url=https://sonarcloud.io" /d:"sonar.analysis.mode=preview" MSBuild.exe /t:Rebuild MSBuild.SonarQube.Runner.exe end

但是,我仍然没有看到SonarQube使用机器人对新PR进行评论(类似于their demo

2 个答案:

答案 0 :(得分:1)

您尝试激活的功能尚未准备好使用 - 这就是为什么它被命名为&#34; Alpha&#34; (Administration -> Settings -> Pull Requests (Alpha))。

在任何情况下,即使此功能准备就绪,虽然这样可以保护您的 GitHub令牌,因为您只会将其保存在SonarCloud上(这很棒),您仍然需要提供< strong> SonarCloud令牌来执行分析。由于您不想公开您的SonarCloud令牌,因此您无法分析外部拉取请求。不幸的是,我们目前没有办法解决这一限制。

答案 1 :(得分:0)

  

我不会将我的API密钥放在任何公共文件上,而Appveyor则不是   要在公共PR上公开我的安全令牌。

要解决此问题,您只需使用https://ci.appveyor.com/tools/encrypt在appveyor中加密令牌即可。

enter image description here

然后将加密的值复制粘贴到您的appveyor.xml文件中。