ci: let Dependabot pass the commit policy - #209
Merged
Conversation
Dependabot authors as 49699333+dependabot[bot]@users.noreply.github.com, which check-no-ai-attribution.sh rejected as a bot identity. Every Dependabot pull request in the ecosystem has failed commit-policy. A named dependency bot is now exempt from the identity half of the check and from nothing else. The rule is there so a human is not displaced as the author of record, and a version bump has no human to displace. The message rules still apply in full, so a bot cannot carry an AI co-author trailer or an assistant's watermark footer past the check. Matched by name rather than by numeric user id, anchored at both ends of the address, so a crafted local part is still rejected. Signed-off-by: Vyncint Ng <vyncint@icloud.com>
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 & why
Every Dependabot pull request in this ecosystem has failed
commit-policy.All four ever opened did; two of them (mossaic#74, reconverge#84) were merged
with the check red.
check-no-ai-attribution.shrejects any author or committer whose email ends[bot]@users.noreply.github.com, and Dependabot authors as49699333+dependabot[bot]@users.noreply.github.com.That rule exists so a human is not displaced as the author of record. A version
bump has no human to displace — it is not somebody's work with the credit
misassigned — so a named dependency bot is now exempt from the identity
half of the check and from nothing else. The message rules still apply to its
commits in full: a bot cannot carry an AI co-author trailer, a "Generated …"
footer or a robot emoji past this.
The allowlist matches Dependabot by name rather than by GitHub's numeric user
id, anchored at both ends of the whole address, so a crafted local part such as
evil+dependabot[bot]@users.noreply.github.comis still rejected. It is ahygiene guard rather than a security boundary — anyone can set an author email
locally — and what actually stops a forged one is review before merge.
The generated files
AGENTS.mdandCONTRIBUTING.md§6 are generated from the privateecosystem repository and were not edited here by hand — they come from
tools/gen_agents.pyandtools/gen_contributing.py, so the documentedpolicy matches the enforced one. The ecosystem-side change lands
separately; this pull request carries its output.
Tested
tools/test-policy-scripts.shin the ecosystem repository is new, and runsboth scripts over commits crafted to sit on each side of every rule. Half the
cases are expected failures, so a rule that stops firing shows up as a case
that unexpectedly passes.
Against the copy in this pull request: 14/14, including
[bot]address — still failsevil+dependabot[bot]@users.noreply.github.com— still fails@noreply.anthropic.comaddress — still failBehaviour was diffed against the previous script over the same cases: the only
two that change are the two Dependabot ones.
What this does not do
CHANGELOG.mdentry: nothing here is user-facing.dependabot.ymlschedule is untouched.a rebase or reopen to pick this up.
Checklist
CHANGELOG.md— n/a, not user-facing