Hi all, wanted to share a concrete update on the automation front. Building on the work @frankwiles started in his pr-playground repo, I have been working on a PR that automatically runs checks and closes PRs that do not meet minimal quality requirements. These are:
- There is a valid Trac ticket linked to the PR
- A Trac ticket must be referenced via
ticket-NNNNN(orN/Ais allowed for trivial changes, where trivial changes are measured by diff length) - The ticket must be in
Acceptedstage - The ticket must have the
has_patchflag set - The action does polling every 5 seconds up to a minute to wait for the has_patch flag. We can fine tune these thresholds.
- A Trac ticket must be referenced via
- A real branch description is provided (not the placeholder text)
- The AI disclosure checkbox is filled out (and how the AI tool was used must be explained when AI was used)
- The checklist is completed (for the mandatory checkboxes)
PRs that fail any of these get a comment with exact details about what is missing, how to solve the issues, and then closed. The workflow does not apply equally to everyone: contributors with commits in the past ~3 years get a comment if something is missing but their PR stays open. It is not a manually curated “allowlist”, but the effect is similar: established contributors are not blocked, drive-by submissions are. The “allowlist” is effectively self-maintaining, it derives from git history. We could even have a “3-tier” logic where:
- No commits, message and PR closed. [current]
- A commit in the past 3 years, message but no PR closing. [current]
- More than 5? commits in the past 3? years → no requirements at all, author gets a full pass [very doable]
This proposal is available now, merged, in my fork so you can propose PRs against it and see what happens in various scenarios. It is not a perfect solution, but IMHO it addresses the core problem. Big thanks to Frank who did the core of the implementation
![]()
Happy to answer questions and take feedback!
Thanks, Natalia.