queue_rules: - name: hotfix allow_inplace_checks: False allow_checks_interruption: False speculative_checks: 1 batch_size: 5 # Wait a short time to embark hotfixes together in a merge train batch_max_wait_time: "2 minutes" conditions: # Mergify automatically applies status check, approval, and conversation rules, # which are the same as the GitHub main branch protection rules # https://docs.mergify.com/conditions/#about-branch-protection - base=main - name: high allow_inplace_checks: False allow_checks_interruption: True speculative_checks: 1 batch_size: 5 # Wait for a few minutes to embark high priority tickets together in a merge train batch_max_wait_time: "5 minutes" conditions: - base=main - name: low allow_inplace_checks: False allow_checks_interruption: True speculative_checks: 1 batch_size: 5 # Wait a bit longer to embark low priority tickets together in a merge train batch_max_wait_time: "10 minutes" conditions: - base=main pull_request_rules: - name: move to hotfix queue when CI passes with 1 review and not WIP targeting main conditions: - base=main - -draft - label!=do-not-merge - 'label~=^P-Critical' actions: queue: name: hotfix method: squash - name: move to high queue when CI passes with 1 review and not WIP targeting main conditions: - base=main - -draft - label!=do-not-merge - or: - 'label~=^P-High' - 'label~=^P-Medium' actions: queue: name: high method: squash - name: move to low queue when CI passes with 1 review and not WIP targeting main conditions: - base=main - -draft - label!=do-not-merge # This queue handles Low, Optional, and PRs with no priority label, # including automated dependabot PRs. # # We don't need to check priority labels here, because the rules are evaluated in order: # https://docs.mergify.com/configuration/#pull-request-rules actions: queue: name: low method: squash