Revision control

Copy as Markdown

queue_rules:
- name: default
conditions:
# Conditions to get out of the queue (= merged)
- "check-success=Decision Task"
- "check-success=run-tests"
- "check-success=check-formatting"
- "#check-success-or-neutral>=5" # we should always have at least this many checks
- "#check-pending=0"
- "#check-stale=0"
- "#check-failure=0"
pull_request_rules:
- name: remove outdated reviews for non-core authors
conditions:
- base=main
- author!=@mozilla/application-services
- author!=@mozilla/application-services-collaborators
- author!=@mozilla/release-management
actions:
dismiss_reviews:
message: The pull request has been modified, dismissing previous reviews.
label:
remove:
- checkin-needed
- name: automatic merge for main
conditions:
- "#approved-reviews-by>=1"
- base=main
- label=checkin-needed
# What we want to say here is "all checks passed", but that's not a concept
# that makes sense in GitHub:
#
#
# But we don't want to just list out all the checks, because we have many of
# them and some of them are added dynamically and we might add or remove checks
# without updating the list here.
#
# So instead we insist that a small set of known checks has completed,
# and also that there are no other checks in unexpected states.
- "check-success=Decision Task"
- "check-success=run-tests"
- "check-success=check-formatting"
- "#check-success-or-neutral>=5" # we should always have at least this many checks
- "#check-pending=0"
- "#check-stale=0"
- "#check-failure=0"
actions:
# This merges by rebasing without strict merge, which means that mergify will *attempt*
# to rebase a matching PR directly on to the `main` branch, even if the PR is out of date.
# However, our GitHub branch protection rules require that PRs must be up-to-date before merging,
# and mergify respects these rules, so the expected behaviour here is that mergify will only
# merge when it can cleanly put the exact commits of the PR directly on top of `main`
# (and thus avoid having to re-write any commits or create merge commits of its own).
queue:
method: rebase
name: default
rebase_fallback: none