27

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

目前,我发现的唯一 sonarqube 插件如下,但我无法成功地将它与 GitLab 集成。

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

我为 sonarqube (v5.5) 使用了一个 docker 容器,并将插件复制到扩展目录中。在 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 分支上运行。我认为这也需要更改为用户分支,对吗?

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

4

2 回答 2

3

我遇到了和你一样的问题。GitLab MR 中未显示评论。我做了两个修复:

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

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

于 2016-10-25T15:25:53.877 回答
2

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

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

于 2017-03-22T06:33:58.307 回答