FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Use GitHub's automerge instead of Mergify by hugovk · Pull Request #9126 · python-pillow/Pillow · GitHub

Use GitHub's automerge instead of Mergify - #9126

Merged
radarhere merged 3 commits into
python-pillow:mainfrom
hugovk:rm-mergify
Aug 28, 2026
Merged

Use GitHub's automerge instead of Mergify#9126
radarhere merged 3 commits into
python-pillow:mainfrom
hugovk:rm-mergify

Conversation

hugovk commented Aug 2, 2025
edited
Loading

Copy link
Copy Markdown
Member

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

hugovk commented Aug 2, 2025

Copy link
Copy Markdown
Member Author

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:

hugovk commented Aug 2, 2025

Copy link
Copy Markdown
Member Author

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

radarhere commented Aug 3, 2025
edited
Loading

Copy link
Copy Markdown
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, but it makes you think something might be wrong.

hugovk commented Aug 3, 2025

Copy link
Copy Markdown
Member Author

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

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 marked this pull request as draft August 3, 2025 09:04

hugovk commented Aug 4, 2026

Copy link
Copy Markdown
Member Author

OK, a rebase and a couple more commits:

  • 4d8e718 fixes an existing issue: GitHub treats a skipped check as a pass. So make sure the check always runs, and ensure the build result really was a pass (rather than a no-op echo).

  • 2d72447 adds a no-op workflow with paths that mirror the paths-ignore from the other test workflows. When the normal ones are skipped for a docs build, the no-op one runs and so the expected workflow success jobs are still present.

Next steps:

hugovk marked this pull request as ready for review August 4, 2026 06:36
Comment thread .github/workflows/test-skipped.yml Outdated
Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
hugovk added automerge Automatically merge PRs that are ready and removed automerge Automatically merge PRs that are ready labels Aug 28, 2026

hugovk commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

(Can't add automerge for one last time on this PR, because it modifies workflow files :)

radarhere merged commit 671c79d into python-pillow:main Aug 28, 2026
65 of 67 checks passed
hugovk deleted the rm-mergify branch August 28, 2026 07:08

hugovk commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

Next steps:

Worked with both a docs PR (#9879) and a non-docs PR (#9878) 🎉

Good timing, rather than deleting the old automerge label, we can now archive it without losing the history on old PRs:

https://github.blog/changelog/2026-08-27-label-archiving-is-generally-available/

So automerge is now archived:

And I've uninstalled the Mergify app from:

https://github.com/organizations/python-pillow/settings/installations

hugovk commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

Whilst looking at https://github.com/organizations/python-pillow/settings/installations, I've also uninstalled the Azure Pipelines and Travis CI apps, we no longer use those either.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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


Back | FazBrowse Home | New Git URL