Repository navigation
feat: add a reusable PR title and agent attribution check - #195
Merged
Merged
Conversation
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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Adds
pr-title-check.yml, a reusable workflow that fails a pull request whose title or commits are not Conventional Commits, or whose body or commits credit a coding agent.scripts/pr_title_check.pychecks the title, the body and every commit in the pull request's range. The rules are ported from deploy-kit'sscripts/check-pr-title.ts: the eleven types release-please reads, an optional scope and!, and release and merge lines accepted as they are. Agent attribution covers a Co-Authored-By trailer naming an agent, a "generated with" banner naming one, and a link back to an agent session, with the same host-boundary matching.pr-title-check.ymlchecks out the pull request's head, so the range holds only its own commits. It runs the script from its own released tag, likequarantine-check.yml. The title and body reach the script through the environment, never through the shell.release-please-config.jsonkeeps that tag in step, and the README lists the workflow.Why
Every repository needs this check. Today only deploy-kit has it, as a Node script. estate-kit is the first consumer: its CI calls this workflow inside
Pipeline Complete.Tracking
None: no issue tracks this.
Verification
tests/test_pr_title_check.py: 24 tests. CI holds the script at 100% line and branch coverage, like the other gate scripts.Pipeline Completeis greenVersioning impact
A new reusable workflow, so the next release is a minor one: 0.34.3 to 0.35.0. No existing workflow changes.