Features

← Back to Home

MergeGuard provides intelligent, policy-driven pull request automation through these key features:


Core Features

📋 Conditional Approvals

Require different reviewers based on files changed, PR size, author, labels, and more. Scale approval requirements dynamically.

🎯 Context-Aware Checks

Only require specific GitHub checks when relevant paths are modified. Reduce CI costs by skipping expensive tests when they're not needed.

🤖 Auto-Approval & Auto-Merge

Automatically approve and merge trusted changes like Dependabot patches or small documentation updates.

🔗 PR Dependencies

Enforce merge order for dependent or stacked PRs. Block merges until parent PRs are complete.

⚡ Priority-Based Rules

When multiple rules match, priority determines which applies. Create emergency fast-tracks that override defaults.

🏷️ Dynamic Labels

Use automated labeling from workflows or AI tools to create dynamic, context-aware review policies based on PR size and risk.


Quick Feature Comparison

Feature What It Does Use Case
Conditional Approvals Dynamic reviewer requirements “Require platform team for infra changes”
Context-Aware Checks Path-based required checks “Only run E2E tests for backend changes”
Auto-Approval Automatic PR approval “Auto-approve Dependabot patches”
Auto-Merge Automatic PR merging “Auto-merge when all requirements met”
PR Dependencies Enforce merge order “Block child PR until parent merges”
Priority Rules Override default policies “Emergency label bypasses standard reviews”
Dynamic Labels Automated label-based policies “Scale approvals by AI-detected complexity”

Detailed Documentation

Click any feature to see detailed examples, configuration options, and use cases:

Conditional Approvals →

Learn how to:

  • Require teams based on file paths
  • Scale approvals with PR size
  • Enforce specific user reviews
  • Combine approval requirements

Context-Aware Checks →

Learn how to:

  • Reduce CI costs with path-based checks
  • Skip tests for documentation changes
  • Require security scans for infrastructure
  • Configure check requirements

Auto-Approval & Auto-Merge →

Learn how to:

  • Auto-approve bot updates
  • Auto-merge when requirements are met
  • Configure merge methods
  • Handle check requirements

PR Dependencies →

Learn how to:

  • Use Depends on #123 syntax
  • Detect stacked PRs automatically
  • Block merges until parents complete
  • Manage dependency chains

Priority-Based Rules →

Learn how to:

  • Override default policies
  • Create emergency fast-tracks
  • Layer rules by specificity
  • Handle multiple matches

Dynamic Labels →

Learn how to:

  • Generate labels via GitHub workflows
  • Integrate AI tools like CodeRabbit and Qodo
  • Scale approvals by PR size/complexity
  • Create risk-based escalation policies

Example: Combining Features

Here’s a real-world configuration using multiple features together:

rules:
  # Priority 10: Emergency hotfix (overrides everything)
  - name: "Emergency hotfix"
    priority: 10
    if:
      labels: ["hotfix"]
    require:
      approvals: 1
      users: ["incident-commander"]
    action:
      autoMerge:
        requireChecks: true
        mergeMethod: "merge"

  # Priority 20: Infrastructure (critical path)
  - name: "Infrastructure changes"
    priority: 20
    if:
      paths: ["infra/**", ".github/workflows/**"]
    require:
      approvals: 2
      teams: ["platform-team", "security-team"]
      checks:
        - "terraform-validate"
        - "security-scan"

  # Priority 50: Backend (context-aware checks)
  - name: "Backend changes"
    priority: 50
    if:
      paths: ["src/backend/**"]
    require:
      approvals: 1
      checks:
        - "unit-tests"
        - "integration-tests"
        - "e2e-tests"

  # Priority 60: Docs (skip CI)
  - name: "Documentation only"
    priority: 60
    if:
      paths: ["docs/**"]
      excludePaths: ["src/**"]
    require:
      approvals: 1
    # No checks required!

  # Priority 70: Dependabot (auto-merge)
  - name: "Dependabot patches"
    priority: 70
    if:
      author: "dependabot[bot]"
      semverLevel: ["patch", "minor"]
    require:
      checks: ["security-scan"]
    action:
      autoApprove: true
      autoMerge:
        requireChecks: true
        mergeMethod: "squash"

  # Priority 100 (default): Everything else
  - name: "Default policy"
    require:
      approvals: 2

This configuration:

  • Emergency hotfixes bypass normal reviews (priority 10)
  • Infrastructure requires both teams (priority 20)
  • Backend runs full test suite (priority 50)
  • Docs skip expensive CI (priority 60)
  • Dependabot patches auto-merge (priority 70)
  • Everything else needs 2 approvals (priority 100)

Next Steps