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>=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" - "#changes-requested-reviews-by=0" - 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: # # https://docs.mergify.io/conditions/#validating-all-status-checks # # 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=ios-test-and-artifacts - check-success=clippy - check-success=check-formatting - "#check-success>=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