# Essential reading on condition syntax: # https://docs.mergify.com/configuration/conditions/#testing-and-debugging-conditions # https://docs.mergify.com/merge-queue queue_rules: - name: default # Account used for pushing rebased updates. Default is {{author}}, # but that doesn't work when they haven't logged into Mergify Dashboard: # https://github.com/Mergifyio/mergify/issues/5075 update_bot_account: nix-infra-bot update_method: rebase merge_method: fast-forward merge_conditions: - check-success = buildbot/nix-build queue_conditions: - or: # Allow queuing PRs that have been approved - "#approved-reviews-by >= 1" # Allow queuing update PRs without approval - and: # We need a double-negative, because mergify only has "any" conditions on list types... # # So we check if "any file does not match the regex", using the `-` prefix operator. # The regex matches anything except `flake.lock` and `generated`, using a negative lookahead `(?!)` # # After canceling out the double-negative, the condition below is true when # _all_ files match either `^flake\.lock$` or `^generated/` - "-files ~= ^(?!flake[.]lock$|generated/)" # Also check the PR was opened by the github-actions bot - author = github-actions