title: Setting code quality thresholds for pull requests
shortTitle: Set PR thresholds
intro: >-
Create a {% data variables.product.prodname_code_quality_short %} gate for
pull requests to increase the quality of code merged into your repository.
versions:
feature: code-quality
product: '{% data reusables.gated-features.code-quality-availability %}'
permissions: '{% data reusables.permissions.code-quality-repo-enable %}'
topics:
- Code Quality
contentType: how-tos
{% data reusables.code-quality.code-quality-preview-note %}
Introduction
You can block pull requests that don't meet your code quality standards by adding the Require code quality results branch rule to a ruleset and specifying the severity level you require. If a pull request doesn't reach this threshold, it can't be merged.
Prerequisites
- {% data variables.product.prodname_code_quality_short %} is enabled. See AUTOTITLE
- Code in a supported language. See Supported languages.
The threshold will have an impact only if the repository has code in one or more of the supported languages, see AUTOTITLE.
Confirming {% data variables.product.prodname_code_quality_short %} runs successfully on pull requests
Before you add or update a ruleset to include a threshold for {% data variables.product.prodname_code_quality_short %}, confirm that the {% data variables.code-quality.workflow_name_actions %} workflow is running and reporting results back to pull requests. Otherwise, the ruleset could block the merging of all pull requests.
- Open a recent pull request and scroll to the "Checks" summary at the bottom of the pull request.
- Confirm that the "{% data variables.code-quality.check_status_name %}" check ran successfully and reported its status.
For more information, see AUTOTITLE.
Adding or updating a ruleset to include {% data variables.product.prodname_code_quality_short %}
- Navigate to the "Settings" tab of your repository.
- In the left sidebar, under "Code and automation", expand {% octicon "repo-push" aria-hidden="true" aria-label="repo-push" %} Rules, then click Rulesets.
- If you don't already have a ruleset to protect your default branch, expand New ruleset and click New branch ruleset. Alternatively, open your existing ruleset for the default branch and move to step 5.
- If you are creating a new ruleset:
- Define a name for the ruleset.
- Set the "Enforcement status" to "Active."
- Under "Target branches" add a target of "Include default branch."
- Under "Branch rules", enable "Require code quality results".
- Set "Severity" to define the lowest severity of code quality results that must be resolved before a pull request can be merged into the default branch. For example:
- Set "Errors" to block pull requests with unresolved code quality errors being merged.
- Set "Warnings and higher" to block pull requests with unresolved code quality warnings or errors being merged.
- Set "Notes and higher" to block pull requests with unresolved code quality notes, warnings or errors being merged.
- Set "All" to block pull requests with any unresolved code quality results being merged.
- When you have finished defining or editing the ruleset, click Create or Save changes.
Next steps
Learn how {% data variables.product.prodname_code_quality %} works on pull requests to prevent code quality issues from reaching your default branch. See AUTOTITLE.