The check-attribution CI gate kept bouncing salvage PRs because mapping contributor emails was a manual, easy-to-forget step (bare <login>@users.noreply.github.com emails don't auto-resolve like the <id>+<login> form). - scripts/audit_pr_attribution.py: mirrors the CI gate's logic exactly (merge-base scan, same skip rules). Report mode for pre-push checks; --fix auto-resolves via the bare-noreply local part (verified against the GitHub users API) or GitHub email search, then writes contributors/emails/<email> files via add_contributor.py. Prints a confirm-the-human warning on bare-noreply resolution since the local part is user-controlled (the bryan->hydraxman case). - contributor-check.yml: failure output + review_status how_to_fix now lead with the one-command fix instead of hand-editing instructions (also drops the stale 'edit AUTHOR_MAP' guidance — AUTHOR_MAP is frozen). |
||
|---|---|---|
| .. | ||
| ci.yml | ||
| contributor-check.yml | ||
| deploy-site.yml | ||
| docker-lint.yml | ||
| docker.yml | ||
| docs-site-checks.yml | ||
| e2e-desktop.yml | ||
| history-check.yml | ||
| infographic-check.yml | ||
| js-autofix.yml | ||
| js-tests.yml | ||
| label-rerun.yml | ||
| lint.yml | ||
| lockfile-diff.yml | ||
| osv-scanner.yml | ||
| publish-e2e-evidence.yml | ||
| review-labels.yml | ||
| skills-index-freshness.yml | ||
| skills-index.yml | ||
| supply-chain-audit.yml | ||
| tests.yml | ||
| uv-lockfile-check.yml | ||