🏗️🔧:keep a tool out of the author credit - #1899
Conversation
✅ Deploy Preview for gh-pages-openinf ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (3)
Included review availability: 1 review is currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour. 📝 WalkthroughWalkthroughThe commit-message validator now rejects assistant and bot identities in ChangesCo-author trailer validation
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Merge Risk: ⚪ Minimal · up to The validator, tests, and contributor guidance align for the documented assistant and bot trailer cases. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
b48e622 to
122912b
Compare
The handbook has always said `Co-authored-by:` is for people and that an assistant belongs in `Assisted-by:` instead. Nothing checked it, and a commit went out this week crediting a model as a co-author. That is not a formatting slip. Authorship is a claim only a person can make: the Developer Certificate of Origin is certified by whoever wrote the code, and a tool certifies nothing. The trailer that discloses one says what was used. The trailer that credits one says who is answerable, and a model cannot be. An agent writing its own commit message reaches for that trailer out of habit, because that is what most of the code it learnt from does, and a reviewer reading a long message is exactly who does not notice one line at the bottom. Once it lands it is in the history for good. So the check refuses it, on three things: the `[bot]` suffix, which GitHub reserves so that no person can hold it; the addresses the agents commit under, which are theirs alone and not the ones their staff use; and a handful of product names. Only the last can reach a person, and realistically only `claude`, which is also a name people have. That is the trade, and if it ever refuses a real co-author the pattern gets narrowed rather than the credit dropped. Renovate and Dependabot are unaffected, since their commits are skipped whole and never reach this. Nor does an agent that commits as a `[bot]` account need naming, which is why Devin and Gemini are absent: both are ordinary names before they are products. Signed-off-by: Derek Lewis <DerekNonGeneric@inf.is> Assisted-by: Claude-Code:claude-opus-5
122912b to
976745f
Compare
Summary
The handbook has always said
Co-authored-by:is for people and that an assistant belongs inAssisted-by:instead. Nothing checked it, and a commit crediting a model as a co-author got as far as an open pull request this week.That is not a formatting slip. Authorship is a claim only a person can make: the Developer Certificate of Origin is certified by whoever wrote the code, and a tool certifies nothing.
Assisted-by:says what was used.Co-authored-by:says who is answerable, and a model cannot be.Why a check and not a review note
An agent writing its own commit message reaches for that trailer out of habit, because most of the code it learnt from does. A reviewer reading a long message is exactly who does not notice one line at the bottom. Once it lands it is in the history for good.
What it refuses
A
Co-authored-by:whose value matches an assistant's address, a[bot]account, or one of the agent product names that reach this project.It refuses on three things: the
[bot]suffix, which GitHub reserves so that no person can hold it; the addresses the agents commit under, which are theirs alone and not the ones their staff use; and a handful of product names. Only the last can reach a person, and realistically onlyclaude, which is also a name people have. That is the trade, and if it ever refuses a real co-author the pattern gets narrowed rather than the credit dropped.An agent whose integration commits as a
[bot]account needs no name in the list, which is why Devin and Gemini are absent: both are ordinary names before they are products. Renovate and Dependabot are unaffected either way, since their commits are skipped whole and never reach this check.Validation
[bot]account fails, and two confirming a person is not caught -- somebody at one of those companies, and somebody whose given name an agent also goes byThe same change lands in OpenINF/sdk, which carries a copy of this module.
Summary by CodeRabbit
New Features
Co-authored-bytrailers.Assisted-byinstead.Documentation
Tests