GitHub App

PR Gate

Enforce Jira ticket links, branch naming conventions, and merge policies on every pull request — automatically, at the GitHub level.

See what it checks

Merge blocked until it's right

PR Gate runs as a GitHub check. Every rule you configure becomes a required status check — PRs simply can't merge until they pass.

github.com › acme-dev/platform-core › pull/412
[ZA-83] fix: rate limit middleware not applying to /health endpoint
d.mcaleer wants to merge 3 commits into main from fix/ZA-83-rate-limit-health
PR Gate · Jira ticket linked ZA-83 found in title
PR Gate · Branch naming Matches fix/{ticket}-{slug}
PR Gate · Jira status ZA-83 is To Do — expected In Progress or In Review
!
PR Gate · Reviewer required No reviewer assigned yet
✗  PR Gate is blocking this merge — 1 check failed, 1 warning

What it enforces

🎫

Jira ticket linking

Every PR must reference a Jira issue in the title or description. Configurable key pattern — supports multiple projects. No ticket, no merge.

🌿

Branch naming

Enforce conventions like feat/{ticket}-{slug} across your whole org. Custom patterns per repo or globally.

🚦

Jira status gates

Block merges until the linked issue is in the right status — e.g. must be In Review or Ready for QA before merging to main.

👥

Reviewer policies

Require a reviewer from a specific GitHub team for certain paths, or simply flag PRs with no assigned reviewer before they go stale.

🏷️

Auto-labelling

Automatically apply GitHub labels based on the Jira issue type, priority, or component. Keeps your PR board scannable without manual effort.

🔔

Slack notifications

Optionally notify a Slack channel when a PR is blocked or when it's been waiting for a review for longer than a configured threshold.

Flexible rule sets

Rules are defined per repo or org-wide in a config file. Mix and match — some rules block, others warn. You decide what's mandatory.

Block or warn

Each rule can be set to block the merge or just surface a warning. Enforce the hard rules, flag the soft ones.

Per-branch overrides

Different rules for main, develop, and release branches. Hotfix branches can bypass some checks when you need to move fast.

Path-based policies

Tighter rules for sensitive paths — infrastructure, auth, payments — while keeping lighter rules on everything else.

Org-wide defaults

Set baseline rules across all repos in your GitHub org. Individual repos can extend or override them.

Config as code

Drop a .pr-gate.yml in your repo root. Everything is version-controlled and reviewable.

# .pr-gate.yml jira: project_keys: ["ZA", "PLAT", "INF"] require_in_title: true allowed_statuses_for_merge: ["In Review", "Ready for QA"] branch: pattern: "^(feat|fix|chore)/{ticket}-[a-z0-9-]+$" enforcement: block reviewers: require_assigned: warn path_rules: - paths: ["infra/**", "auth/**"] require_team: "platform-leads" labels: from_jira_type: true from_jira_priority: true

Free and open source

PR Gate is MIT licensed. Use the wizard to generate your config, or clone the repo and adapt it to your own needs.

Open the wizard View on GitHub

Need it configured for your org, or want custom rule extensions? Get in touch.