This feature is available with GitLab.com and GitLab self hosted 12.5 and higher
With GitLab it’s possible to block the merge of a merge request if the SonarQube Quality Gate is failed on the MR (Merge Request).
To do that:
- First make sure that your pipeline is configured to not allow failures on the quality gate check.
In your YAML pipeline make sure you specify -Dsonar.qualitygate.wait=true and allow_failure=false in your scan.
image:
name: sonarsource/sonar-scanner-cli:latest
entrypoint: [""]
variables:
SONAR_TOKEN: "<YourToken>"
SONAR_HOST_URL: "<YourSonarQubeUrl>"
GIT_DEPTH: 0
sonarqube-check:
stage: test
script:
- sonar-scanner -Dsonar.qualitygate.wait=true
allow_failure: false
only:
- merge_requests
- master
- Configure the repository to allow merge only if build succeeds:
In Settings --> General, tick the box Pipelines must succeed in the Merge checks section
- When you analyze a merge request with GitLab-CI you’ll notice that:
a) Quality Gate failure causes the pipeline to fail
b) Since pipeline is failed, you can’t merge the merge request
See Also:


