View as Markdown

Enabling & Configuring Merge Protections

How to enable Merge Protections, pick a reporting method, and decide whether the check needs to be required in GitHub.


  1. Go to the Mergify dashboard
  2. Click the Merge Protections section
  3. Select your repository
  4. Enable the feature and create rules
Merge Protections rules for a repository

Reporting Method: check-runs vs deployments

Section titled Reporting Method: check-runs vs deployments

You can configure how Merge Protections report their status to GitHub using the reporting_method option in your configuration. This controls whether the protection status appears as a GitHub Check Run or as a Deployment.

  • check-runs (default): Reports the protection status as a standard GitHub check on the pull request. This is the most common and compatible method.

    GitHub required checks
  • deployments: Reports the protection status as a GitHub Deployment. This can be useful if your workflow or compliance requirements rely on deployment status.

    Merge Protections deploy success

Example configuration:

merge_protections_settings:
reporting_method: check-runs # or deployments
# Post a comment with details about required rules
post_comment: true
# Automatically merge or queue PRs when all protections pass
auto_merge_conditions: true

Choose the method that best fits your integration and compliance needs.

The auto_merge_conditions option automatically merges or queues pull requests when all merge protection success_conditions pass. It accepts true for unconditional auto-merge or a list of conditions to restrict the audience. Auto-merge is disabled when the field is omitted.

See Auto-Merge for the full behavior reference and configuration examples.

Enabling inserts a check named Mergify Merge Protections on each pull request, or a deployment of the same name if you set reporting_method: deployments.

Mergify enforces your protections on every merge it performs itself, whether it comes from the merge queue, Auto-Merge, or the merge action: it won’t merge a pull request until all of its active merge protections succeed. You don’t have to require the check in GitHub for that to happen.

Requiring it in GitHub is what blocks a merge that doesn’t go through Mergify: someone clicking GitHub’s merge button, or another tool calling GitHub’s merge API. Unless every merge on the repository goes through Mergify, mark the result as required, as a check or as a deployment depending on your reporting method:

  • GitHub Branch Protection: Settings → Branches → Add/Edit rule → Require status checks / deployment to succeed → select Mergify Merge Protections

  • GitHub Rulesets: Settings → Rules → Select ruleset → Add required status check / deployment to succeed → Mergify Merge Protections

GitHub Branch Protection

When an active protection fails, the check explains why in its output, and in a summary comment unless you set post_comment: false.

  • Safe to edit live; re-evaluations happen automatically.
  • Renaming a rule only changes display text; logic is defined by the condition blocks.
  • Remove obsolete rules to keep explanations short.

Was this page helpful?