# Validate your changes with:
#
#   $ curl -F 'data=@.mergify.yml' https://gh.mergify.io/validate/
#
# https://doc.mergify.io/
pull_request_rules:
  - name: automatic merge (squash) on CI success
    conditions:
      - status-success=buildkite/solana
      - status-success=Travis CI - Pull Request
      - status-success=ci-gate
      - label=automerge
      - author≠@dont-squash-my-commits
    actions:
      merge:
        method: squash
  # Join the dont-squash-my-commits group if you won't like your commits squashed
  - name: automatic merge (rebase) on CI success
    conditions:
      - status-success=buildkite/solana
      - status-success=Travis CI - Pull Request
      - status-success=ci-gate
      - label=automerge
      - author=@dont-squash-my-commits
    actions:
      merge:
        method: rebase
  - name: remove automerge label on CI failure
    conditions:
      - label=automerge
      - "#status-failure!=0"
    actions:
      label:
        remove:
          - automerge
      comment:
        message: automerge label removed due to a CI failure
  - name: remove outdated reviews
    conditions:
      - base=master
    actions:
      dismiss_reviews:
        changes_requested: true
  - name: set automerge label on mergify backport PRs
    conditions:
      - author=mergify[bot]
      - head~=^mergify/bp/
      - "#status-failure=0"
    actions:
      label:
        add:
          - automerge
  - name: v1.4 backport
    conditions:
      - label=v1.4
    actions:
      backport:
        ignore_conflicts: true
        branches:
          - v1.4
  - name: v1.5 backport
    conditions:
      - label=v1.5
    actions:
      backport:
        ignore_conflicts: true
        branches:
          - v1.5
  - name: v1.6 backport
    conditions:
      - label=v1.6
    actions:
      backport:
        ignore_conflicts: true
        branches:
          - v1.6
  - name: v1.7 backport
    conditions:
      - label=v1.7
    actions:
      backport:
        ignore_conflicts: true
        branches:
          - v1.7
