diff --git a/.github/workflows/pr-commit-check.yml b/.github/workflows/pr-commit-check.yml index bd989b1d48..a2820a8fcf 100644 --- a/.github/workflows/pr-commit-check.yml +++ b/.github/workflows/pr-commit-check.yml @@ -27,15 +27,35 @@ jobs: fail=0 while IFS= read -r sha; do [ -z "$sha" ] && continue - if git log -1 --format=%B "$sha" | git interpret-trailers --parse | \ - grep -iE '^(Co-authored-by|Signed-off-by):.*?' >/dev/null; then - echo "::error::Commit $sha contains a Co-authored-by or Signed-off-by trailer for noreply@anthropic.com" + trailers=$(git log -1 --format=%B "$sha" | git interpret-trailers --parse) + if echo "$trailers" | \ + grep -iE '^(Co-authored-by|Signed-off-by):.*?[[:space:]]*$' >/dev/null; then + echo "::error::Commit $sha contains a Co-authored-by or Signed-off-by trailer for a disallowed AI vendor" + git log -1 --format=' %h %s' "$sha" + fail=1 + fi + if echo "$trailers" | \ + grep -iE '^(Co-authored-by|Signed-off-by):.*?[[:space:]]*$' >/dev/null; then + echo "::error::Commit $sha contains a Co-authored-by or Signed-off-by trailer for GitHub Copilot" + git log -1 --format=' %h %s' "$sha" + fail=1 + fi + if echo "$trailers" | \ + grep -iE '^(Co-authored-by|Signed-off-by):.*\[bot\]@users\.noreply\.github\.com>?[[:space:]]*$' >/dev/null; then + echo "::error::Commit $sha contains a Co-authored-by or Signed-off-by trailer for a bot account" + git log -1 --format=' %h %s' "$sha" + fail=1 + fi + author_email=$(git log -1 --format=%ae "$sha") + if echo "$author_email" | \ + grep -iE '\[bot\]@users\.noreply\.github\.com$' >/dev/null; then + echo "::error::Commit $sha is authored by a bot account ($author_email)" git log -1 --format=' %h %s' "$sha" fail=1 fi done < <(git rev-list "$BASE_SHA".."$HEAD_SHA") if [ "$fail" -ne 0 ]; then - echo "One or more commits contain disallowed AI attribution trailers; please amend them out." + echo "One or more commits contain disallowed AI attribution; please amend them out." exit 1 fi - echo "No disallowed AI attribution trailers found." + echo "No disallowed AI attribution found."