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
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