Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 84 additions & 85 deletions .github/mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,172 +2,171 @@ pull_request_rules:
- name: auto-merge
description: automatic merge for main with >= 2 approved reviews, all requested reviews have given feedback, not held, and CI is successful
conditions:
- "#approved-reviews-by>=2"
- "#review-requested=0"
- "#changes-requested-reviews-by=0"
- or:
- base=main
- base~=^release-
- label!=hold
- label!=do-not-merge
- label!=needs-rebase
- "#approved-reviews-by>=2"
- "#review-requested=0"
- "#changes-requested-reviews-by=0"
- or:
- base=main
- base~=^release-
- label!=hold
- label!=do-not-merge
- label!=needs-rebase

# The files conditions regex should match the globs in workflow files
# If workflow configuration files in .github/ are changed, the actionlint check must pass
- or:
- and:
- check-success=actionlint
- or:
- files~=^\.github/(actions|workflows)/.*\.ya?ml$
- files~=^\.github/workflows/actionlint\.
- and:
- -files~=^\.github/(actions|workflows)/.*\.ya?ml$
- -files~=^\.github/workflows/actionlint\.
- or:
- and:
- check-success=actionlint
- or:
- files~=^\.github/(actions|workflows)/.*\.ya?ml$
- files~=^\.github/workflows/actionlint\.
- and:
- -files~=^\.github/(actions|workflows)/.*\.ya?ml$
- -files~=^\.github/workflows/actionlint\.

# code lint workflow
- or:
- and:
- or:
- and:
# note this should match the triggering criteria in 'lint.yml'
- check-success=lint-workflow-complete
- or:
- files~=\.py$
- files=pyproject.toml
- files~=^requirements.*\.txt$
- files=tox.ini
- files~=^scripts/[^/]+\.sh$
- files=.github/workflows/lint.yml
- and:
- -files~=\.py$
- -files=pyproject.toml
- -files~=^requirements.*\.txt$
- -files=tox.ini
- -files~=^scripts/[^/]+\.sh$
- -files=.github/workflows/lint.yml
- check-success=lint-workflow-complete
- or:
- files~=\.py$
- files=pyproject.toml
- files~=^requirements.*\.txt$
- files=tox.ini
- files~=^scripts/[^/]+\.sh$
- files=.github/workflows/lint.yml
- and:
- -files~=\.py$
- -files=pyproject.toml
- -files~=^requirements.*\.txt$
- -files=tox.ini
- -files~=^scripts/[^/]+\.sh$
- -files=.github/workflows/lint.yml

- or:
- and:
- check-success=markdown-lint
- or:
- files~=\.md$
- files=.markdownlint-cli2.yaml
- files=.github/workflows/docs.yml
- and:
- -files~=\.md$
- -files=.markdownlint-cli2.yaml
- -files=.github/workflows/docs.yml
- or:
- and:
- check-success=markdown-lint
- or:
- files~=\.md$
- files=.markdownlint-cli2.yaml
- files=.github/workflows/docs.yml
- and:
- -files~=\.md$
- -files=.markdownlint-cli2.yaml
- -files=.github/workflows/docs.yml

actions:
merge:
method: merge
delete_head_branch:

- name: label-cicd
description: Automatically apply CI/CD label
conditions:
- or:
- files=.github/mergify.yml
- files~=^\.github/(actions|workflows)/
- files=scripts/ruff.sh
- files=.pre-commit-config.yaml
- files=.pylintrc
- files=tox.ini
- files=.markdownlint-cli2.yaml
- or:
- files=.github/mergify.yml
- files~=^\.github/(actions|workflows)/
- files=scripts/ruff.sh
- files=.pre-commit-config.yaml
- files=.pylintrc
- files=tox.ini
- files=.markdownlint-cli2.yaml
actions:
label:
add:
- CI/CD
- CI/CD

- name: label-documentation
description: Automatically apply documentation label
conditions:
- or:
- files~=^[^/]+\.md$
- or:
- files~=^[^/]+\.md$
actions:
label:
add:
- documentation
- documentation

- name: label-testing
description: Automatically apply testing label
conditions:
- or:
- files~=^tests/
- files=tox.ini
- or:
- files~=^tests/
- files=tox.ini
actions:
label:
add:
- testing
- testing

- name: ping author on conflicts and add 'needs-rebase' label
conditions:
- conflict
- -closed
- conflict
- -closed
actions:
label:
add:
- needs-rebase
- needs-rebase
comment:
message: |
This pull request has merge conflicts that must be resolved before it can be
merged. @{{author}} please rebase it. https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork
This pull request has merge conflicts that must be resolved before it can be
merged. @{{author}} please rebase it. https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

- name: remove 'needs-rebase' label when conflict is resolved
conditions:
- -conflict
- -closed
- -conflict
- -closed
actions:
label:
remove:
- needs-rebase
- needs-rebase

- name: release-branch-label
description: Automatically apply the release-branch label to release branch PRs
conditions:
- base~=^release-
- base~=^release-
actions:
label:
add:
- release-branch
- release-branch

- name: Apply ci-failure label if any CI checks have failed
conditions:
- "#check-failure>0"
- "#check-failure>0"
actions:
label:
add:
- ci-failure
- ci-failure

- name: Remove ci-failure label if no failures are present
conditions:
- "#check-failure=0"
- "#check-failure=0"
actions:
label:
remove:
- ci-failure
- ci-failure

- name: Apply 'one-approval' label if one of the maintainer approved the PR
conditions:
- "#approved-reviews-by=1"
- "#approved-reviews-by=1"
actions:
label:
add:
- one-approval
- one-approval

- name: Remove 'one-approval' label if the approval was reset
conditions:
- "#approved-reviews-by!=1"
- "#approved-reviews-by!=1"
actions:
label:
remove:
- one-approval
- one-approval

- name: label-dependencies
description: Automatically apply dependencies label
conditions:
- or:
- files~=^requirements.*\.txt$
- files~=^requirements/
- or:
- files~=^requirements.*\.txt$
- files~=^requirements/
actions:
label:
add:
- dependencies
- dependencies
Loading