hermes-agent/.github/workflows
Teknium 06adcfabf9
feat(attribution): conflict-free contributor mappings via contributors/emails/ directory
The AUTHOR_MAP dict in scripts/release.py was a merge-conflict magnet:
every concurrent salvage PR appended entries to the same lines of the
same file, so parallel PRs re-conflicted on every merge to main.

New system: one file per email under contributors/emails/ — filename is
the commit-author email, first non-comment line is the GitHub login.
File additions never conflict, so any number of PRs can add mappings
concurrently.

- scripts/release.py: AUTHOR_MAP is now LEGACY_AUTHOR_MAP (frozen)
  merged with the directory at import time (directory wins). All
  existing consumers (resolve_author, contributor_audit.py) unchanged.
- scripts/add_contributor.py: idempotent CLI to add a mapping; refuses
  conflicting reassignments (incl. against the legacy map), validates
  email/login shapes.
- contributor-check.yml: attribution gate now accepts a mapping file OR
  a legacy entry; failure message prints the exact add_contributor
  command. Also auto-resolves bare <login>@users.noreply.github.com
  emails is intentionally NOT added (kept id+login form only, matching
  previous behavior).
- contributor_audit.py: guidance now points at add_contributor.py.
- tests/scripts/test_contributor_map.py: 12 tests covering loader,
  merge precedence, CLI idempotency/conflict/validation, subprocess E2E.
2026-07-17 13:54:04 -07:00
..
ci.yml feat(ci): semantic package-lock.json diff as an upserted PR comment (#65206) 2026-07-16 03:18:15 +00:00
contributor-check.yml feat(attribution): conflict-free contributor mappings via contributors/emails/ directory 2026-07-17 13:54:04 -07:00
deploy-site.yml fix(docs): reuse healthy skills index during Pages deploys (#45616) 2026-06-13 06:46:07 -07:00
docker-lint.yml change(ci): docker-publish.yml -> docker.yml 2026-06-26 19:15:18 -07:00
docker.yml security(ci): pass untrusted refs through env, not run: interpolation 2026-07-03 12:44:30 -04:00
docs-site-checks.yml ci: refactor paths & clones 2026-06-23 09:30:50 -07:00
history-check.yml ci: refactor paths & clones 2026-06-23 09:30:50 -07:00
js-autofix.yml ci(js-autofix): skip apply-patch job when no fixes found 2026-07-16 16:13:50 -04:00
js-tests.yml fix(js ci): don't ignore native deps anymore 2026-07-15 16:28:54 -04:00
lint.yml ci: add desktop autofix-on-merge with two-job security split 2026-07-16 01:42:02 +05:30
lockfile-diff.yml feat(ci): semantic package-lock.json diff as an upserted PR comment (#65206) 2026-07-16 03:18:15 +00:00
osv-scanner.yml ci: add 2 minute timeout to osv scan (#66410) 2026-07-17 18:29:42 +00:00
skills-index-freshness.yml feat(skills-hub): health checks, freshness badge, and a watchdog cron (#32345) 2026-05-25 23:10:45 -07:00
skills-index.yml change(ci): upload-artifact from v4 -> v7 2026-06-26 19:15:18 -07:00
supply-chain-audit.yml ci: refactor paths & clones 2026-06-23 09:30:50 -07:00
tests.yml change(ci): slice files in matrix job 2026-06-26 19:15:18 -07:00
upload_to_pypi.yml change(ci): upload-artifact from v4 -> v7 2026-06-26 19:15:18 -07:00
uv-lockfile-check.yml change(ci): update all UV installs 2026-06-26 19:15:18 -07:00