将gitlab与sonarqube

时间:2016-06-20 18:07:48

标签: plugins sonarqube integration gitlab gitlab-8

我的服务器上安装了GitLab CE(至少v8.5)。我想将它与sonarqube集成,以便合并请求在评论部分显示任何问题。有没有人成功整合这两个系统?

目前,我发现只有sonarqube插件如下,但我无法将其与GitLab成功集成。

https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin

我使用了一个docker容器for sonarqube(v5.5)并将插件复制到extensions目录中。在sonarqube的插件设置页面中配置了gitlab用户令牌和gitlab uri。

我正在使用GitLab CI进行持续集成,我为sonarqube做了以下构建工作(使用gradle)

sh gradlew sonarqube -Psonar.analysis.mode=preview -Psonar.issuesReport.console.enable=true \
  -Psonar.gitlab.commit_sha=$CI_BUILD_REF -Psonar.gitlab.ref_name=$CI_BUILD_REF_NAME \
  -Psonar.gitlab.project_id=$CI_PROJECT_ID

但是,我不确定在此之后该怎么做。几个问题:

  1. 当合并请求不存在时会发生什么?在我的git工作流程中,用户将在完成分支工作后提交合并请求。那么,这个插件将如何知道要更新哪个合并请求?

  2. 现在我将sonarqube valiation任务设置为仅在master分支上运行。我认为这也需要改为用户分支,对吗?

  3. 我确实尝试过提交合并请求,但我没有看到任何评论被添加。我想我缺少一些配置或过程。真的很感激,如果你能帮我指出正确的方向。

2 个答案:

答案 0 :(得分:2)

我遇到的问题与你的问题相同。评论未在GitLab MR中显示。我使用了两个修复程序:

  • 确保使用预览模式。如果不是,则问题不会报告给GitLab
  • 要将问题显示为GitLab评论,他们必须是" new"的问题。如果您在推送到GitLab之前启动了对项目的分析,SonarQube将不会将这些问题视为新问题,并且不会向MR添加任何评论。

如果这不能解决您的问题,请尝试克隆插件仓库,向代码添加跟踪(CommitIssuePostJob.java是要查看的地方),使用maven打包jar并将修补后的jar部署到Sonar安装。这就是我看到我没有新问题需要报告的方式。

答案 1 :(得分:2)

@ 1:评论将添加到您的提交中,然后会显示在合并请求的讨论部分中

@ 2:我们正在对master进行全面分析,并在任何分支上进行预览。