100 lines
3.1 KiB
YAML
100 lines
3.1 KiB
YAML
# Automatic merging of approved PRs for Zebra
|
|
#
|
|
# This file can be edited and validated using:
|
|
# https://dashboard.mergify.com/github/ZcashFoundation/repo/zebra/config-editor
|
|
|
|
queue_rules:
|
|
- name: urgent
|
|
# Allow to update/rebase the original pull request if possible to check its mergeability,
|
|
# and it does not create a draft PR if not needed
|
|
allow_inplace_checks: True
|
|
allow_checks_interruption: False
|
|
speculative_checks: 1
|
|
batch_size: 8
|
|
# 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: batched
|
|
allow_inplace_checks: True
|
|
allow_checks_interruption: True
|
|
speculative_checks: 1
|
|
batch_size: 20
|
|
# Wait for about 10% of the time it takes Rust PRs to run CI (3h)
|
|
batch_max_wait_time: "20 minutes"
|
|
conditions:
|
|
- base=main
|
|
|
|
# These rules are checked in order, the first one to be satisfied applies
|
|
pull_request_rules:
|
|
- name: move to urgent queue when CI passes with multiple reviews
|
|
conditions:
|
|
# This queue handles a PR if it:
|
|
# has multiple approving reviewers
|
|
- "#approved-reviews-by>=2"
|
|
# is labeled with Critical priority
|
|
- 'label~=^P-Critical'
|
|
# and satisfies the standard merge conditions:
|
|
# targets main
|
|
- base=main
|
|
# is not in draft
|
|
- -draft
|
|
# does not include the do-not-merge label
|
|
- label!=do-not-merge
|
|
actions:
|
|
queue:
|
|
name: urgent
|
|
method: squash
|
|
|
|
- name: move to urgent queue when CI passes with 1 review
|
|
conditions:
|
|
# This queue handles a PR if it:
|
|
# has at least one approving reviewer (branch protection rule)
|
|
# does not need extra reviews
|
|
- 'label!=extra-reviews'
|
|
# is labeled with Critical priority
|
|
- 'label~=^P-Critical'
|
|
# and satisfies the standard merge conditions:
|
|
- base=main
|
|
- -draft
|
|
- label!=do-not-merge
|
|
actions:
|
|
queue:
|
|
name: urgent
|
|
method: squash
|
|
|
|
- name: move to batched queue when CI passes with multiple reviews
|
|
conditions:
|
|
# This queue handles a PR if it:
|
|
# has multiple approving reviewers
|
|
- "#approved-reviews-by>=2"
|
|
# is labeled with any other priority (rules are checked in order)
|
|
# and satisfies the standard merge conditions:
|
|
- base=main
|
|
- -draft
|
|
- label!=do-not-merge
|
|
actions:
|
|
queue:
|
|
name: batched
|
|
method: squash
|
|
|
|
- name: move to batched queue when CI passes with 1 review
|
|
conditions:
|
|
# This queue handles a PR if it:
|
|
# has at least one approving reviewer (branch protection rule)
|
|
# does not need extra reviews
|
|
- 'label!=extra-reviews'
|
|
# is labeled with any other priority (rules are checked in order)
|
|
# and satisfies the standard merge conditions:
|
|
- base=main
|
|
- -draft
|
|
- label!=do-not-merge
|
|
actions:
|
|
queue:
|
|
name: batched
|
|
method: squash
|