feat(github-app): wire check-run annotations for Context check - #607
Conversation
…ored#575) Build sanitized hotspot annotations from changed files, collision overlap, and public finding text; pass them through createOrUpdateNamedCheckRun for Gittensory Context while keeping Gate output text-only. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Note Gittensory Gate skippedPR closed before full evaluation. No late first comment was created.
Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers. |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
reviewbot · advisory review Reviewed 5 changed file(s) — two independent AI reviewers. Suggested action: ✅ Safe to merge — the reviewer found no blocking issues. Reviewer A · Suggestions
Worth double-checking
Reviewer B · |
|
gittensory · advisory review Reviewed 3 changed file(s) — two independent AI reviewers. Suggested action: ✅ Safe to merge — both reviewers found no blocking issues. Reviewer A · Suggestions
Worth double-checking
Reviewer B · Suggestions
Worth double-checking
|
Reconcile rules.test.ts with the merged annotation builder from JSONbored#608 so this PR keeps only Context check wiring changes. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
buildCheckRunAnnotationsinsrc/rules/advisory.tsto map duplicate-overlap, missing-test, and public finding hotspots onto changed PR files with sanitized messages, severity→level mapping, and a 50-annotation cap plus omitted-count rollup informatCheckRunOutput.output.annotations[]throughcreateOrUpdateCheckRun/createOrUpdateNamedCheckRunfor the Gittensory Context check only; Gate stays text-only.processGitHubWebhookso Context check runs can annotate changed paths.test/unit/rules.test.tsandtest/unit/github-app.test.tsfor builder behavior, sanitizer boundaries, cap/rollup, and Context-vs-Gate wiring.Closes #575
Scope
CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally; global coverage stays at or above 97% for lines, statements, functions, and branches (aim for 98%+ branch coverage locally so CI variance does not fail near the threshold)npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm run audit --audit-level=moderateIf any required check was skipped, explain why:
npm run validatewas run locally (coverstypecheck+test:coverage); branch coverage met the 97% threshold.actionlint,test:workers,build:mcp,test:mcp-pack,ui:*,audit) are left for CI to run.Safety
Notes
checkRunDetailLevel; minimal detail level publishes no inline annotations.