Outputs
Status Check
In addition to the PR comment, PRMergeSafe posts a status check that branch protection rules can use to block risky merges.
What it is
At the bottom of every PR, GitHub shows a list of checks (status checks, like the ones CI systems post). PRMergeSafe adds one called PRMergeSafe / Analysis.
Unlike the comment (which is informational), the status check can be made required in your repo's branch protection settings — meaning the merge button is disabled until PRMergeSafe says it's safe.
States
The check goes through two visible states:
1. ⏳ In progress (immediate)
Posted within ~1 second of the PR opening. Shows a spinner and the text "Analyzing pull request…". This is your signal that PRMergeSafe received the webhook and is working — no more guessing whether the bot is alive.
2. Final state (after analysis)
Once analysis finishes (usually 30–90 seconds), the check updates to one of these final states:
- ✅ Success — risk level is SAFE or LOW. Merge with confidence.
- ⚠️ Action required — risk level is MEDIUM, HIGH, CRITICAL, or NEEDS_HUMAN_REVIEW. Review the comment before merging.
- ⚪ Neutral — skipped PR (e.g.
[skip-prmergesafe]in the title, empty diff). Doesn't block merge. - ❌ Failure — PRMergeSafe encountered an error during analysis. Re-push to retry.
Branch protection (the real value)
The status check on its own is informational. Where it becomes powerful is when you wire it into branch protection rules — then GitHub will actually block the merge button until PRMergeSafe passes.
How to set it up
In your repository on GitHub:
- Go to Settings → Branches
- Find your default branch (usually
main) under Branch protection rules and click Edit (or Add rule if none exist) - Enable Require status checks to pass before merging
- In the search box, type
PRMergeSafeand select it - Save changes
Note: the PRMergeSafe check only appears in this dropdown after at least one PR has been analyzed on the repo. If you don't see it, open a test PR first.
What "Action required" means
When the check shows Action required, the merge button is disabled (assuming branch protection is on). To unblock the merge, you have three options:
- Fix the issue — push a new commit that addresses the finding. PRMergeSafe re-analyzes on push and may flip to Success.
- Override — admins on the repo can bypass branch protection if the finding is a false positive. Use sparingly.
- Raise the risk threshold — if your team is fine with MEDIUM-risk merges, change the threshold in dashboard settings (paid plans only).