Skip to content

Conversation

hugovk
Copy link
Member

@hugovk hugovk commented Aug 2, 2025

We first set up Mergify in 2020 to automerge PRs once certain conditions were met: CI has passed, PR is approved, automerge label added: #4931.

Since then, GitHub has added native automerge which is a bit nicer to use: no need to add a label, and while the CI is still running, the "Merge pull request" button becomes an "Enable auto-merge" button, which will do the merge when the CI passes.

Docs: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request

I've created a ruleset for the main branch at 🔒 https://github.com/python-pillow/Pillow/settings/rules/7135275. There are lots of settings, but I've mirrored the Mergify ones:

Require these status checks to pass:

Also left this enabled, because we don't want to accidentally delete main:

  • Restrict deletions
    Only allow users with bypass permissions to delete matching refs.

We don't need to add a label, because it's now signalled by clicking "Enable auto-merge".

And we don't require explicit approval, because that's also implicit when clicking "Enable auto-merge" (similarly, for a PR where the CI has already passed, we don't require explicit approvals).

If for some reason a status check fails but we still want to merge (maybe some dependency is temporarily failing to download because a server is down), as admins we can still click to bypass the rules and merge.

Screenshots of all the settings image image image

@hugovk
Copy link
Member Author

hugovk commented Aug 2, 2025

If for some reason a status check fails but we still want to merge (maybe some dependency is temporarily failing to download because a server is down), as admins we can still click to bypass the rules and merge.

Updated ruleset for this:

image

@hugovk
Copy link
Member Author

hugovk commented Aug 2, 2025

Also requires "Allow auto-merge" at https://github.com/python-pillow/Pillow/settings. I also checked "Automatically delete head branches" to keep things tidy:

image

@radarhere
Copy link
Member

#9097 and #8926 are showing an interesting side effect of these changes in settings - when we skip workflows, because we're only building docs or only building wheels, the 'Successful' checks are now just showing as 'pending'.

It doesn't cause any problems, it makes you think something might be wrong.

@hugovk
Copy link
Member Author

hugovk commented Aug 3, 2025

Hmm, it actually does cause a problem, because it blocks merge (although you can use admin permissions to bypass it):

image

Let's hold off on this for now, and I've disabled the ruleset ("Enforcement status: Disabled") at https://github.com/python-pillow/Pillow/settings/rules/7135275.

@hugovk hugovk marked this pull request as draft August 3, 2025 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants