Skip to content

Route govulncheck for Go repos and add opt-in Scorecard rows to the settings audit - #2290

Merged
remigiusz-antczak merged 5 commits into
mainfrom
land/govulncheck-scorecard
Nov 11, 2026
Merged

remigiusz-antczak merged 5 commits into
mainfrom
land/govulncheck-scorecard

Conversation

@remigiusz-antczak

Copy link
Copy Markdown
Collaborator

Summary

  • review_checks.sh now routes govulncheck for Go repositories (repos with a go.mod). Findings come out as review rows. If govulncheck is missing, or the run fails, the result is reported as NOT CHECKED. It never counts as a silent pass.
  • repo_settings_audit.py gains an opt-in --scorecard flag. It adds one OpenSSF Scorecard row per repository. A score that is non-finite or outside the 0–10 range is rejected and reported as not checked.
  • The tool-hub.md route rows and docs/standards-index.md are updated for both tools.

Closes #2285
Closes #2284

Tests

  • scripts/test-review-checks-govulncheck.sh: 9/9
  • scripts/test_repo_settings_scorecard.py and the existing settings audit tests: 55/55
  • Size, size-ratchet and changelog-fragment gates pass locally (fragments 23/23). tool-hub.md grows from 16646 to 17473 bytes; the raise is recorded in the changelog.d fragment.

🤖 Generated with Claude Code

remigiusz-antczak and others added 5 commits November 11, 2026 10:48
…-scorecard row per repo

govulncheck joins the tool hub. When the root go.mod changes it runs
`govulncheck -format json ./...` (GOPROXY=off GOTOOLCHAIN=local) and keeps
only vulnerabilities the code actually calls, one row each on go.mod with
the call site and fixed version in the message. Imported-only findings are
dropped, which is the noise cut over dependency scanners. A missing
govulncheck or Go toolchain is NOT CHECKED; output with no config message,
a stray line in the JSON stream, or a crash is "not run", never clean.

repo_settings_audit.py gains --scorecard: a public repo gets an info row
with the OpenSSF Scorecard aggregate score (kept in --json rows); a private
repo, a missing scorecard binary or a failed run is an explicit not-checked
row. It calls scorecard directly with --format=json because
supply_chain_check.sh --scorecard prints text only.

The measured before/after noise delta on a real Go repo from the issue's
done-when is not included: it needs the vulnerability database over the
network.

size-budget-raise: .claude/skills/deep-code-review/references/tool-hub.md 15770→16597 govulncheck registry row and the repo_settings_audit --scorecard flag

Tests: 72/72

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
run_scorecard now treats a score that is NaN, infinite or outside 0..10 as a failed run, so the row is not-checked instead of a bogus aggregate score.

Tests: 9/9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Row 16646 to 17473 bytes with a size-budget-raise marker in the fragment.

Tests: 23/23

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@remigiusz-antczak
remigiusz-antczak merged commit 2afdba1 into main Nov 11, 2026
11 checks passed
@remigiusz-antczak
remigiusz-antczak deleted the land/govulncheck-scorecard branch November 11, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add govulncheck to the tool hub Wire OpenSSF Scorecard into the audit sweep

1 participant