git log --format='%(trailers:key=Assisted-by)' undercounts this repository's AI attributions. On dev today it reports 31 where 43 exist.
Git reads trailers only from a block at the very end of a commit message. A squash merge concatenates the branch's commit messages, so every trailer but the last is left buried mid-message, and an indented trailer is skipped for the same reason. Both forms are real attributions and both are invisible to the parser.
This matters beyond tidiness. The Assisted-by trailer exists because the Eclipse Foundation's Generative AI Usage Guidelines oblige committers to be transparent about their use of generative AI, and the trailer is the per-change, dated record that obligation rests on. A count that silently misses most of them cannot answer the question it was put there to answer.
ThreadX added scripts/count_assisted_by.sh in eclipse-threadx/threadx#775. It reads whole commit bodies instead of relying on git's trailer parser, so the count is complete:
scripts/count_assisted_by.sh # HEAD, grouped by value
scripts/count_assisted_by.sh dev # a branch
scripts/count_assisted_by.sh dev -- <path> # limited to a path
scripts/count_assisted_by.sh --list dev # one line per commit
Port that script here. It is plain bash with nothing repository-specific in it, so it should need no change beyond the copyright header.
git log --format='%(trailers:key=Assisted-by)'undercounts this repository's AI attributions. Ondevtoday it reports 31 where 43 exist.Git reads trailers only from a block at the very end of a commit message. A squash merge concatenates the branch's commit messages, so every trailer but the last is left buried mid-message, and an indented trailer is skipped for the same reason. Both forms are real attributions and both are invisible to the parser.
This matters beyond tidiness. The
Assisted-bytrailer exists because the Eclipse Foundation's Generative AI Usage Guidelines oblige committers to be transparent about their use of generative AI, and the trailer is the per-change, dated record that obligation rests on. A count that silently misses most of them cannot answer the question it was put there to answer.ThreadX added
scripts/count_assisted_by.shin eclipse-threadx/threadx#775. It reads whole commit bodies instead of relying on git's trailer parser, so the count is complete:Port that script here. It is plain bash with nothing repository-specific in it, so it should need no change beyond the copyright header.