Skip to content

Evaluate alternatives to Mergify for PR automation #1071

@LalatenduMohanty

Description

@LalatenduMohanty

Context

Mergify's rebase action is deprecated for fork PRs after July 1, 2026, and its update action only supports merge commits. There is no clean way to auto-rebase PRs that are behind main without polluting history (see #1069).

This issue tracks evaluation of alternatives.

Current Mergify Usage

  1. Auto-labeling — adds ci or mergify labels based on PR title/files
  2. Auto-merge — merges PRs when all CI checks pass + 1 approval
  3. Auto-update — keeps approved PRs up to date with main (broken — creates merge commits instead of rebasing)
  4. Conflict notification — comments on PRs with merge conflicts

Note: e2e/mergify_lint.py validates that .mergify.yml check-success rules stay in sync with the GitHub Actions test matrix. Any migration must preserve or replace this validation.

Alternatives

1. Kodiak

  • Free for open-source, configured via .kodiak.toml
  • Supports clean rebase (no merge commits) and works with fork PRs
  • Auto-merge with CI check requirements + approval
  • No native auto-labeling (would need a separate GitHub Action)
  • Would require replacing mergify_lint.py with equivalent validation against .kodiak.toml
  • https://kodiakhq.com/

2. GitHub Actions composite (peter-evans/rebase + pascalgn/automerge-action + actions/labeler)

  • Free, fully customizable
  • Fork PR rebase requires "Allow edits by maintainers" on the fork
  • More maintenance overhead, no unified interface
  • Could keep using mergify_lint.py if check-success pattern is preserved in branch protection

3. GitHub native merge queue + branch protection

  • Free, built into GitHub
  • No continuous auto-rebase (only at merge time)
  • Poor fork PR support
  • No auto-labeling

4. Aviator MergeQueue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions