---
pull_request_rules:
  - name: remove outdated approvals
    conditions:
      - base=master
    actions:
      dismiss_reviews:
        approved: true
        changes_requested: false
  - name: ask to resolve conflict
    conditions:
      - conflict
    actions:
      comment:
        # yamllint disable-line rule:truthy
        message: "This pull request now has conflicts with the target branch.
        Could you please resolve conflicts and force push the corrected
        changes? 🙏"
  - name: automatic merge
    conditions:
      - label!=DNM
      - base=master
      - "#approved-reviews-by>=2"
      - "#changes-requested-reviews-by=0"
      - "status-success=codespell"
      - "status-success=multi-arch-build"
      - "status-success=go-test"
      - "status-success=golangci-lint"
      - "status-success=gosec"
      - "status-success=commitlint"
      - "status-success=mod-check"
      - "status-success=lint-extras"
      - "status-success=ci/centos/containerized-tests"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.19"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.20"
      - "status-success=ci/centos/mini-e2e/k8s-1.19"
      - "status-success=ci/centos/mini-e2e/k8s-1.20"
      - "status-success=ci/centos/upgrade-tests-cephfs"
      - "status-success=ci/centos/upgrade-tests-rbd"
      - "status-success=DCO"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: automatic merge PR having ready-to-merge label
    conditions:
      - label!=DNM
      - label=ready-to-merge
      - base=master
      - "#approved-reviews-by>=1"
      - "status-success=codespell"
      - "status-success=multi-arch-build"
      - "status-success=go-test"
      - "status-success=golangci-lint"
      - "status-success=gosec"
      - "status-success=commitlint"
      - "status-success=mod-check"
      - "status-success=lint-extras"
      - "#changes-requested-reviews-by=0"
      - "status-success=ci/centos/containerized-tests"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.19"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.20"
      - "status-success=ci/centos/mini-e2e/k8s-1.19"
      - "status-success=ci/centos/mini-e2e/k8s-1.20"
      - "status-success=ci/centos/upgrade-tests-cephfs"
      - "status-success=ci/centos/upgrade-tests-rbd"
      - "status-success=DCO"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: backport patches to release v1.2.0 branch
    conditions:
      - base=master
      - label=backport-to-release-v1.2.0
    actions:
      backport:
        branches:
          - release-v1.2.0
  # automerge backports if CI successfully ran
  - name: automerge backport release-v1.2.0
    conditions:
      - author=mergify[bot]
      - base=release-v1.2.0
      - label!=DNM
      - "#changes-requested-reviews-by=0"
      - "#approved-reviews-by>=1"
      - "status-success=continuous-integration/travis-ci/pr"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: backport patches to release-v2.0 branch
    conditions:
      - base=master
      - label=backport-to-release-v2.0
    actions:
      backport:
        branches:
          - release-v2.0
  # automerge backports if CI successfully ran
  - name: automerge backport release-v2.0
    conditions:
      - author=mergify[bot]
      - base=release-v2.0
      - label!=DNM
      - "#changes-requested-reviews-by=0"
      - "#approved-reviews-by>=1"
      - "status-success=continuous-integration/travis-ci/pr"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: backport patches to release-v2.1 branch
    conditions:
      - base=master
      - label=backport-to-release-v2.1
    actions:
      backport:
        branches:
          - release-v2.1
  # automerge backports if CI successfully ran
  - name: automerge backport release-v2.1
    conditions:
      - author=mergify[bot]
      - base=release-v2.1
      - label!=DNM
      - "#changes-requested-reviews-by=0"
      - "#approved-reviews-by>=1"
      - "status-success=continuous-integration/travis-ci/pr"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: backport patches to release-v3.0 branch
    conditions:
      - base=master
      - label=backport-to-release-v3.0
    actions:
      backport:
        branches:
          - release-v3.0
  # automerge backports if CI successfully ran
  - name: automerge backport release-v3.0
    conditions:
      - author=mergify[bot]
      - base=release-v3.0
      - label!=DNM
      - "#changes-requested-reviews-by=0"
      - "#approved-reviews-by>=1"
      - "status-success=continuous-integration/travis-ci/pr"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: backport patches to release-v3.1 branch
    conditions:
      - base=master
      - label=backport-to-release-v3.1
    actions:
      backport:
        branches:
          - release-v3.1
  # automerge backports if CI successfully ran
  - name: automerge backport release-v3.1
    conditions:
      - author=mergify[bot]
      - base=release-v3.1
      - label!=DNM
      - "#changes-requested-reviews-by=0"
      - "#approved-reviews-by>=1"
      - "status-success=multi-arch-build"
      - "status-success=continuous-integration/travis-ci/pr"
      - "status-success=ci/centos/containerized-tests"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.19"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.20"
      - "status-success=ci/centos/mini-e2e/k8s-1.19"
      - "status-success=ci/centos/mini-e2e/k8s-1.20"
      - "status-success=ci/centos/upgrade-tests-cephfs"
      - "status-success=ci/centos/upgrade-tests-rbd"
      - "status-success=DCO"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: backport patches to release-v3.2 branch
    conditions:
      - base=master
      - label=backport-to-release-v3.2
    actions:
      backport:
        branches:
          - release-v3.2
  # automerge backports if CI successfully ran
  - name: automerge backport release-v3.2
    conditions:
      - author=mergify[bot]
      - base=release-v3.2
      - label!=DNM
      - "#approved-reviews-by>=1"
      - "status-success=codespell"
      - "status-success=multi-arch-build"
      - "status-success=go-test"
      - "status-success=golangci-lint"
      - "status-success=gosec"
      - "status-success=commitlint"
      - "status-success=mod-check"
      - "status-success=lint-extras"
      - "#changes-requested-reviews-by=0"
      - "status-success=ci/centos/containerized-tests"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.19"
      - "status-success=ci/centos/mini-e2e-helm/k8s-1.20"
      - "status-success=ci/centos/mini-e2e/k8s-1.19"
      - "status-success=ci/centos/mini-e2e/k8s-1.20"
      - "status-success=ci/centos/upgrade-tests-cephfs"
      - "status-success=ci/centos/upgrade-tests-rbd"
      - "status-success=DCO"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: remove outdated approvals on ci/centos
    conditions:
      - base=ci/centos
    actions:
      dismiss_reviews:
        approved: true
        changes_requested: false
  - name: automatic merge on ci/centos
    conditions:
      - label!=DNM
      - base=ci/centos
      - "#approved-reviews-by>=2"
      - "#changes-requested-reviews-by=0"
      - "status-success=ci/centos/job-validation"
      - "status-success=ci/centos/jjb-validate"
      - "status-success=DCO"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}
  - name: automatic merge PR having ready-to-merge label on ci/centos
    conditions:
      - label!=DNM
      - label=ready-to-merge
      - base=ci/centos
      - "#approved-reviews-by>=1"
      - "#changes-requested-reviews-by=0"
      - "status-success=ci/centos/job-validation"
      - "status-success=ci/centos/jjb-validate"
      - "status-success=DCO"
    actions:
      merge:
        method: rebase
        rebase_fallback: merge
        bot_account: ceph-csi-bot
        strict: smart
        strict_method: rebase
      dismiss_reviews: {}
      delete_head_branch: {}