将 gitlab 与 sonarqube 集成
integrating gitlab with sonarqube
我的服务器上安装了 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
但是,我不确定这之后要做什么。几个问题:
当合并请求不存在时会发生什么?在我的 git 工作流程中,用户将在完成分支工作后提交合并请求。那么,这个插件如何知道要更新哪个合并请求?
现在我只在 master 分支上将 sonarqube 验证任务设置为 运行。我认为这也需要更改为用户分支,对吗?
我确实尝试提交合并请求,但我没有看到添加任何评论。我想我缺少一些配置或过程。如果您能帮我指出正确的方向,我将不胜感激。
我遇到了和你一样的问题。 GitLab MR 中没有显示评论。我通过两个修复使其工作:
- 确保使用预览模式。如果不是,则不会将问题报告给 GitLab
- 对于显示为 GitLab 评论的问题,它们必须是 "new" 个问题。如果您在推送到 GitLab 之前启动了项目分析,SonarQube 不会将这些问题视为新问题,并且不会向 MR 添加任何评论。
如果这不能解决您的问题,请尝试克隆插件 repo,向代码添加跟踪(CommitIssuePostJob.java 是查看的地方),使用 maven 打包 jar 并将修补后的 jar 部署到您的 Sonar安装。这就是我看到我没有新问题要报告的方式。
- 您应该使用 -Dsonar.gitlab... 而不是 -Psonar.gitlab... 等(参见 https://groups.google.com/forum/#!topic/sonarqube/dx8UIkcz55c )
- 在最新版本的插件中,您可以在没有发现问题时添加评论。这有助于调试。
@1:评论将添加到您的提交中,然后将显示在合并请求的讨论部分
@2:我们正在 运行 对 master 的完整分析和对任何分支的预览。
我的服务器上安装了 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
但是,我不确定这之后要做什么。几个问题:
当合并请求不存在时会发生什么?在我的 git 工作流程中,用户将在完成分支工作后提交合并请求。那么,这个插件如何知道要更新哪个合并请求?
现在我只在 master 分支上将 sonarqube 验证任务设置为 运行。我认为这也需要更改为用户分支,对吗?
我确实尝试提交合并请求,但我没有看到添加任何评论。我想我缺少一些配置或过程。如果您能帮我指出正确的方向,我将不胜感激。
我遇到了和你一样的问题。 GitLab MR 中没有显示评论。我通过两个修复使其工作:
- 确保使用预览模式。如果不是,则不会将问题报告给 GitLab
- 对于显示为 GitLab 评论的问题,它们必须是 "new" 个问题。如果您在推送到 GitLab 之前启动了项目分析,SonarQube 不会将这些问题视为新问题,并且不会向 MR 添加任何评论。
如果这不能解决您的问题,请尝试克隆插件 repo,向代码添加跟踪(CommitIssuePostJob.java 是查看的地方),使用 maven 打包 jar 并将修补后的 jar 部署到您的 Sonar安装。这就是我看到我没有新问题要报告的方式。
- 您应该使用 -Dsonar.gitlab... 而不是 -Psonar.gitlab... 等(参见 https://groups.google.com/forum/#!topic/sonarqube/dx8UIkcz55c )
- 在最新版本的插件中,您可以在没有发现问题时添加评论。这有助于调试。
@1:评论将添加到您的提交中,然后将显示在合并请求的讨论部分
@2:我们正在 运行 对 master 的完整分析和对任何分支的预览。