Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Create custom rules #101

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

feat: Create custom rules

b51126f
Select commit
Loading
Failed to load commit list.
Open

feat: Create custom rules #101

feat: Create custom rules
b51126f
Select commit
Loading
Failed to load commit list.
Mergify / Summary succeeded Dec 24, 2024 in 2s

12 potential rules

Rule: delete the head branch after merge (delete_head_branch)

  • closed [📌 delete_head_branch requirement]
  • merged

Rule: ask to resolve conflict (comment, label)

  • conflict
  • all of:
    • all of:
      • -closed
      • -merged

Rule: remove triage label if approved (label)

  • #approved-reviews-by>=1
  • all of:
    • all of:
      • -closed
      • -merged

Rule: close stale PRs with merge conflicts (close)

  • conflict
  • commits[*].date_committer < 30 days ago
  • updated-at < 7 days ago
  • all of:
    • all of:
      • -closed
      • -merged

Rule: remove certain labels on close (label)

  • closed

Rule: close Pull Requests without files changed (close, label)

  • all of:
    • all of:
      • #files=0
  • all of:
    • all of:
      • -closed
      • -merged

Rule: add triage label for new pull requests (label)

  • #label=0
  • any of:
    • commits[*].date_committer > 5 minutes ago
    • created-at > 5 minutes ago
    • updated-at > 7 days ago
  • #approved-reviews-by=0
  • all of:
    • all of:
      • -closed
      • -merged
  • all of:
    • all of:
      • -author=cloudpossebot
      • -author=dependabot[bot]
      • -author=github-actions[bot]
      • -author=renovate[bot]

Rule: add "WIP" label when the title contains "WIP" (label)

  • title~=WIP
  • all of:
    • all of:
      • -closed
      • -merged

Rule: add "needs-cloudposse" label when restrictions apply to this PR (comment, label)

  • all of:
    • any of:
      • files~=(mergify|settings|dependabot|renovate|CODEOWNERS|\.github|Makefile|Dockerfile)
      • label~=(cloudposse)
  • all of:
    • all of:
      • -closed
      • -merged

Rule: rebase pull requests one time when labeled with rebase (rebase)

  • label=rebase
  • -closed [📌 rebase requirement]
  • -conflict [📌 rebase requirement]
  • queue-position = -1 [📌 rebase requirement]
  • any of:
    • #commits-behind > 0 [📌 rebase requirement]
    • #commits > 1 [📌 rebase requirement]
    • -linear-history [📌 rebase requirement]

Rule: rebase pull requests one time when labeled with rebase (label)

  • label=rebase

Rule: Comment on PRs during code freeze and close them (close)

  • all of:
    • created-at > 2024-11-12
    • repository-full-name=cloudposse/terraform-aws-components
    • base=main
    • label != force

💖  Mergify is proud to provide this service for free to open source projects.

🚀  You can help us by becoming a sponsor!


19 not applicable rules

Rule: label automated pull requests (label)

  • all of:
    • any of:
      • author=cloudpossebot
      • author=dependabot[bot]
      • author=github-actions[bot]
      • author=renovate[bot]
  • all of:
    • all of:
      • -closed
      • -merged

Rule: label automated pull requests that update readme (label)

  • files=README.md
  • all of:
    • any of:
      • author=cloudpossebot
      • author=dependabot[bot]
      • author=github-actions[bot]
      • author=renovate[bot]
  • all of:
    • all of:
      • -closed
      • -merged

Rule: run terratest on automated pull requests that update terraform files (comment)

  • all of:
    • any of:
      • author=cloudpossebot
      • author=dependabot[bot]
      • author=github-actions[bot]
      • author=renovate[bot]
  • all of:
    • all of:
      • -closed
      • -merged
  • all of:
    • all of:
      • files~=\.tf$

Rule: merge automated PRs that only update the markdown files, images or videos (merge)

  • #approved-reviews-by >= 1 [🛡 GitHub repository ruleset rule]
  • #commits-behind = 0 [🛡 GitHub repository ruleset rule]
  • branch-protection-review-decision = APPROVED [🛡 GitHub repository ruleset rule]
  • files~=\.(md|gif|png|jpg|mp4)$
  • head~=auto-update/.*
  • all of:
    • all of:
      • base=master
      • base=main
  • all of:
    • any of:
      • author=cloudpossebot
      • author=dependabot[bot]
      • author=github-actions[bot]
      • author=renovate[bot]
  • any of: [🛡 GitHub repository ruleset rule]
    • check-neutral = test/terratest
    • check-skipped = test/terratest
    • check-success = test/terratest
  • any of: [🛡 GitHub repository ruleset rule]
    • check-neutral = terraform-module / ci
    • check-skipped = terraform-module / ci
    • check-success = terraform-module / ci
  • any of: [🛡 GitHub repository ruleset rule]
    • check-neutral = terraform-module / CI / Format HCL
    • check-skipped = terraform-module / CI / Format HCL
    • check-success = terraform-module / CI / Format HCL
  • #changes-requested-reviews-by = 0 [🛡 GitHub repository ruleset rule]
  • #check-pending=0
  • #review-threads-unresolved = 0 [🛡 GitHub repository ruleset rule]
  • -closed [📌 merge requirement]
  • -conflict [📌 merge requirement]
  • -draft [📌 merge requirement]
  • all of:
    • all of:
      • -closed
      • -merged
  • any of: [📌 merge -> configuration change requirements]
    • -mergify-configuration-changed
    • check-success = Configuration changed
  • any of: [🛡 GitHub repository ruleset rule]
    • check-success = Summary
    • check-neutral = Summary
    • check-skipped = Summary
  • any of: [🛡 GitHub repository ruleset rule]
    • check-success = Summary
    • check-neutral = Summary
    • check-skipped = Summary

Rule: merge automated PRs that only update the markdown files, images or videos (label)

  • files~=\.(md|gif|png|jpg|mp4)$
  • head~=auto-update/.*
  • all of:
    • all of:
      • base=master
      • base=main
  • all of:
    • any of:
      • author=cloudpossebot
      • author=dependabot[bot]
      • author=github-actions[bot]
      • author=renovate[bot]
  • #check-pending=0
  • all of:
    • all of:
      • -closed
      • -merged

Rule: close automated PRs with persistent merge conflicts quickly (close)

  • conflict
  • all of:
    • any of:
      • author=cloudpossebot
      • author=dependabot[bot]
      • author=github-actions[bot]
      • author=renovate[bot]
  • commits[*].date_committer < 1 days ago
  • all of:
    • all of:
      • -closed
      • -merged

Rule: ask to rebuild readme (comment)

  • files=README.yaml
  • all of:
    • all of:
      • base=master
      • base=main
  • -files=README.md
  • all of:
    • all of:
      • -closed
      • -merged

Rule: ask for title (comment)

  • -title~=^[0-9A-Za-z]+
  • all of:
    • all of:
      • base=master
      • base=main
  • all of:
    • all of:
      • -closed
      • -merged

Rule: ask for description (comment)

  • body~=(Describe high-level what changed)
  • all of:
    • all of:
      • base=master
      • base=main
  • -body~=[0-9A-Za-z]{3,}\\s+[0-9A-Za-z]{3,}\\s+[0-9A-Za-z]{3,}
  • all of:
    • all of:
      • -closed
      • -merged

Rule: remove outdated reviews (dismiss_reviews)

  • all of:
    • all of:
      • base=master
      • base=main
  • all of:
    • all of:
      • -closed
      • -merged

Rule: close stale pull request after 90 days (close)

  • label~=(stale)
  • all of:
    • all of:
      • base=master
      • base=main
  • commits[*].date_committer < 90 days ago
  • updated-at < 3 days ago
  • all of:
    • all of:
      • -closed
      • -merged

Rule: label stale pull request after 30 days (comment, label)

  • -label~=(stale|triage)
  • all of:
    • all of:
      • base=master
      • base=main
  • commits[*].date_committer < 30 days ago
  • updated-at < 7 days ago
  • all of:
    • all of:
      • -closed
      • -merged

Rule: close pull request waiting on feedback for 1 month (close)

  • label~=(stale)
  • all of:
    • all of:
      • base=master
      • base=main
  • any of:
    • #changes-requested-reviews-by > 0
    • #commented-reviews-by > 0
    • label~=(feedback)
  • updated-at < 30 days ago
  • all of:
    • all of:
      • -closed
      • -merged

Rule: close pull request marked as invalid, duplicate or won't fix (close)

  • label~=(duplicate|invalid|wontfix)
  • all of:
    • all of:
      • base=master
      • base=main
  • all of:
    • all of:
      • -closed
      • -merged

Rule: close pull request that is a work in progress and in active for 1 month (close)

  • all of:
    • all of:
      • base=master
      • base=main
  • commits[*].date_committer < 90 days ago
  • updated-at < 30 days ago
  • all of:
    • all of:
      • -closed
      • -merged
  • all of:
    • any of:
      • all of:
        • all of:
          • label~=(triage|stale|feedback|help needed)
      • draft
      • label~=(WIP|wip)
      • title~=^(wip|WIP)
      • all of:
        • any of:
          • label~=(do-not-merge|do not merge)
          • title~=(do-not-merge|do not merge)

Rule: welcome new contributors (comment)

  • all of:
    • all of:
      • -label~=(WIP|wip|do-not-merge|do not merge|triage|stale|feedback|help needed)
      • -draft
      • -title~=^(wip|WIP)
  • all of:
    • all of:
      • base=master
      • base=main
  • updated-at < 5 minutes ago
  • all of:
    • all of:
      • -closed
      • -merged
  • all of:
    • all of:
      • -author=cloudpossebot
      • -author=dependabot[bot]
      • -author=github-actions[bot]
      • -author=renovate[bot]
  • all of:
    • all of:
      • -conflict
      • -label~=(conflict)
  • all of:
    • all of:
      • -author=@admins
      • -author=@approvers
      • -author=@bots
      • -author=@contributors
      • -author=@engineering
      • -author=@security
      • all of:
        • all of:
          • -author=cloudpossebot
          • -author=dependabot[bot]
          • -author=github-actions[bot]
          • -author=renovate[bot]

Rule: Add needs-test label on new commits (label)

  • all of:
    • all of:
      • base=master
      • base=main
  • all of:
    • all of:
      • commits[*].date_committer > 1 minutes ago
  • -label=~needs-test
  • all of:
    • all of:
      • -closed
      • -merged
  • all of:
    • all of:
      • files~=\.tf$

Rule: Remove needs-test label when required tests pass (label)

  • all of:
    • all of:
      • base=master
      • base=main
  • all of:
    • any of:
      • -files~=\.tf$
      • all of:
        • check-success=test/bats
        • check-success=test/terratest
        • -status-failure~=^(terratest|terraform)$
  • all of:
    • all of:
      • -closed
      • -merged

Rule: rebase pull request when it's more than 10 commits behind main (rebase)

  • #commits-behind>=10
  • all of:
    • all of:
      • base=master
      • base=main
  • -closed [📌 rebase requirement]
  • -conflict [📌 rebase requirement]
  • queue-position = -1 [📌 rebase requirement]
  • all of:
    • all of:
      • -closed
      • -merged
  • any of:
    • #commits-behind > 0 [📌 rebase requirement]
    • #commits > 1 [📌 rebase requirement]
    • -linear-history [📌 rebase requirement]
Mergify commands and options

More conditions and actions can be found in the documentation.

You can also trigger Mergify actions by commenting on this pull request:

  • @Mergifyio refresh will re-evaluate the rules
  • @Mergifyio rebase will rebase this PR on its base branch
  • @Mergifyio update will merge the base branch into this PR
  • @Mergifyio backport <destination> will backport this PR on <destination> branch

Additionally, on Mergify dashboard you can:

  • look at your merge queues
  • generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.com