fix(github): allow self-host TRUSTED_SCANNER_BOT_LOGINS override#4661
Merged
Conversation
isTrustedScannerReviewThreadAuthor only recognized four hardcoded scanner bot logins, so a self-hoster running a different third-party scanner (CodeQL, Snyk, Semgrep, etc.) had its review-thread comments silently fall through every trust check and never create a blocker. TRUSTED_SCANNER_BOT_LOGINS (comma-separated) is merged additively with the built-in defaults, same shape as resolveDriftAssignees.
Contributor
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4661 +/- ##
=======================================
Coverage 94.12% 94.12%
=======================================
Files 434 434
Lines 38496 38503 +7
Branches 14038 14040 +2
=======================================
+ Hits 36233 36240 +7
Misses 1604 1604
Partials 659 659
🚀 New features to boost your workflow:
|
minion1227
pushed a commit
to minion1227/gittensory
that referenced
this pull request
Jul 10, 2026
…-table gate (JSONbored#4545) * feat(review): viewport x theme completeness matrix for the screenshot-table gate (JSONbored#4540) The deterministic screenshot-table gate only checked that a PR body contained some markdown table with any image inside it, with no concept of viewport or color-mode coverage -- even though metagraphed's own contributor skill file documents an exact 3-viewport x 2-theme x before/after = 12-image contract. metagraphed PR JSONbored#4661 shipped 4/12 images and passed AI review, which had no way to know the completeness requirement existed. screenshotTableGate gains requireViewports/requireThemes (string arrays, empty by default -- opt-in per repo, byte-identical otherwise). When set, the evaluator matches each required (viewport, theme) pair against a labeled table row and requires two image-bearing cells (before + after) in that row; missing pairs are named in the rejection reason. action gains a real advisory value, distinct from the request_changes/comment values JSONbored#4110 removed as dead/unwired config -- this one is actually wired: an advisory violation is computed but never reaches the close-triggering planner match. Full config-as-code wiring: DB migration + Drizzle schema + settings resolver + .gittensory.yml manifest parser (both the Worker copy and the hand-duplicated gittensory-engine package copy) + OpenAPI. Closes JSONbored#4540 * fix(review): renumber migration to 0131 (0130 was claimed by another PR mid-rebase) * fix(review): mark the defensive row[0] fallback unreachable for coverage (codecov/patch)
Closed
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
isTrustedScannerReviewThreadAuthor(src/github/backfill.ts) only recognized four hardcoded scanner bot logins (superagent[bot],superagent-security[bot],superagent-security-dev[bot],brin[bot]), so a self-hoster running a different third-party scanner (CodeQL, Snyk, Semgrep, SonarCloud, DeepSource, etc.) had that scanner's unresolved review-thread comments silently fall through every trust check and never create areview_thread_unresolvedgate blocker.TRUSTED_SCANNER_BOT_LOGINSenv var (comma-separated logins, merged with the built-in defaults — same shape asresolveDriftAssigneesinsrc/upstream/ruleset.ts), so a self-hoster can trust their own scanner bot without a source edit while the four built-in defaults stay recognized unless the operator lists more.npm run selfhost:env-reference:src/github/backfill.tsis not in the generator'sDEFAULT_SOURCE_ROOTS, so no change was produced for this new env var — the generated doc's scope did not need updating for this change.Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #123) — a linked open issue is required for every contributor PR.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally;codecov/patchrequires ≥99% coverage of the lines AND branches you changed (aim for 100% on your diff so CI variance does not fail near the threshold). Global coverage is a non-blocking trend with a loose 90% backstop, not the gate.npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateIf any required check was skipped, explain why:
src/github/backfill.ts) with no UI/MCP/workflow/dependency surface, soui:*,build:mcp/test:mcp-pack,test:workers,actionlint, andnpm auditwere not run locally — CI covers them and none of these surfaces were touched.test:coveragewas run scoped totest/unit/backfill.test.tswith coverage restricted tosrc/github/backfill.ts(not the full unsharded suite); the lcov output confirms 100% line and branch coverage on every line this PR changes (src/github/backfill.ts:3800,3846-3865).Safety
UI Evidencesection below with JPG/JPEG or PNG screenshots arranged as organized, captioned, clickable thumbnails. SVG screenshots are not used as review evidence. Review-only screenshots or recordings are not committed to the repository.selfhost:env-reference.)UI Evidence
N/A — backend-only change, no UI surface.
Notes