feat(enrichment): commit-signature / verified-author provenance analyzer - #1764
feat(enrichment): commit-signature / verified-author provenance analyzer#1764GildardoDev wants to merge 4 commits into
Conversation
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-06-29 22:14:27 UTC
⏸️ Suggested Action - Manual Review Review summary Nits — 6 non-blocking
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
…t in the commit-signature analyzer
…re-provenance-analyzer # Conflicts: # review-enrichment/src/brief.ts # review-enrichment/src/render.ts # review-enrichment/src/types.ts
8aa1214 to
c4b7c2f
Compare
JSONbored
left a comment
There was a problem hiding this comment.
Another feat(enrichment) (REES analyzer) was merged before yours, so there are merge conflicts.
This branch has conflicts that must be resolved
Use the [web editor](https://github.com/JSONbored/gittensory/pull/1764/conflicts) or the command line to resolve conflicts before continuing.
review-enrichment/src/brief.ts
review-enrichment/src/render.ts
review-enrichment/src/types.ts
I'd really recommend being careful submitting these, I wouldn't open a PR until you see no other PRs for this are open/awaiting review, as they all touch the same files and as such, bring a very high likelihood for merge conflicts.
Closing.
What
A new REES (review-enrichment service) analyzer that flags head-commit signature and author-provenance risks the no-checkout reviewer cannot derive: an unsigned or unverified-signature head commit, an author/committer login mismatch, and a never-before-seen committer whose login has no verified history in a repo that otherwise carries verified commits. These are supply-chain and impersonation signals.
Data source
GitHub REST. It reads
commit.verification.{verified, reason}and the author/committer login fromGET /repos/{owner}/{repo}/commits/{headSha}, and establishes the new-committer-vs-verified-history signal with at most two boundedGET /commits?per_page=30queries (author-filtered, then repo-wide). The output is public-safe: only GitHub'sverifiedboolean, itsreasonstring, boolean provenance flags, and the public commit-author login GitHub already shows on the PR. No tokens, emails, local paths, or private signals.Behavior
Additive and fail-safe: it never throws, and returns no finding on a missing token or head SHA, an unresolvable repo slug, or any fetch error. A clean verified head with a matching author and no new-committer signal produces no finding. It follows the established analyzer pattern entirely within
review-enrichment/(finding type intypes.ts, a pure analyzer with injectedfetchinanalyzers/commit-signature.ts, registration inbrief.ts, a public-safe block inrender.ts), outside the engine scope.Tests
12
node:testcases with a mockedfetchcover verified and unverified heads, the reason passthrough, the author/committer mismatch, the new-committer-vs-verified-history signal, the fail-safe paths (no token, bad slug, fetch error), and a public-safe render assertion (no token prefixes, no emails). Full suite: rees build clean, 167 of 167 tests pass.Closes #1517