integrating gitlab with sonarqube

aver picture aver · Jun 20, 2016 · Viewed 12.2k times · Source

I have GitLab CE (v8.5 at least) installed on my server. I would like to integrate it with sonarqube so that merge requests shows any issues in the comment section. Has anyone integrated these 2 systems successfully?

At the moment, only sonarqube plugin I found is the following but I'm not able to successfully integrate it with GitLab.

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

I used a docker container for sonarqube (v5.5) and copied the plugin into extensions directory. Configured gitlab user token and gitlab uri in the plugin's setting page in sonarqube.

I'm using GitLab CI for continuous integration and I have the following build job for sonarqube (using 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

But, I'm not sure what to after this. Couple of questions:

  1. What happens when a merge request does not exist yet? In my git workflow, users will submit a merge request after they're done working on their branch. So, how will this plugin know which merge request to update?

  2. Right now I have the sonarqube valiation task set to be running only on master branch. I think this will need to be changed to user branches too, right?

I did try submitting a merge request, but I didn't see any comments being added. I think I'm missing some configuration or a process. Really appreciate if you can help point me to the right direction.

Answer

la_urre picture la_urre · Oct 25, 2016

I had the same problem than yours. Comments were not showing in the GitLab MR. I made it work with two fixes:

  • make sure the preview mode is used. If it is not, the issues are not reported to GitLab
  • for issues to appear as GitLab comments, they have to be "new" issues. If you launched an analysis of your project before pushing to GitLab, the issues will not be considered as new by SonarQube, and no comment will be added to the MR.

If this does not solve your problem, try cloning the plugin repo, adding traces to the code (CommitIssuePostJob.java is the place to look), package the jar with maven and deploy the patched jar to your Sonar installation. That is how I saw that I had no new issues to report.