Repository navigation
ci: go vulnerability gate (spec 013 G1) - #673
Conversation
New "vuln (go)" job installs govulncheck v1.9.0 and runs hack/govulncheck-all.sh over every go.work module (envtest, e2e and postgres tag sets included); a weekly workflow scans master the same way. hack/check-govulncheck_test.sh proves the gate against an offline synthetic advisory: a module calling the affected symbol exits 3, one calling only the safe symbol exits 0. The fixture module is vendored at v1.0.0 in a temp dir rather than reached through a directory replace, because govulncheck skips modules whose version is empty. T015-T020. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 58 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Reachable findings, 13 of 17 scans:
Not pushing a fix yet: the dependency and toolchain changes need the owner's sign-off first (CLAUDE.md override 1). This PR stays draft until then. Generated by Claude Code |
CI Report - 0b03a58run 38323102092 - attempt 1 0 failed - 30 passed - 0 skipped - 76m48s elapsed Coverage
Changed
Slowest jobs
e2e buckets run
|
Signed-off-by: Claude <noreply@anthropic.com>
govulncheck flagged stdlib go1.26.8 (fixed in 1.26.9): setup-go kept the runner's preinstalled 1.26.8. check-latest makes '1.26' resolve to the newest patch. capture-sidecar's x/net is already v0.60.0 via master. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
|
The maintainer chose to keep the cosign migration in its own PR, with this one merging after it. So I'm not copying #684 in here. When #684 merges, I'll merge master into this branch and re-check. Generated by Claude Code |
Signed-off-by: Claude <noreply@anthropic.com> # Conflicts: # .github/workflows/ci.yaml
Brings in the cosign v3 migration (#684) so govulncheck can re-check the operator module. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
govulncheck still reported GO-2026-5932 (golang.org/x/crypto/openpgp, no fixed version) after the cosign v3 migration: rekor v1.5.3's pkg/pki/pgp imported the deprecated package. rekor v1.5.4 uses ProtonMail/go-crypto instead, so the vulnerable package leaves the operator's build graph. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
#672 and #674 each raised the closed count from 2 to 3 on their own branches, so after both merged the summary said 3 closed while the table holds 4, which make check-coverage-gaps rejects. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Depends on #671 (its setup commit is included here until that merges).
Before: no Go vulnerability scanning ran anywhere in CI.
After: a new
vuln (go)job installs govulncheck v1.9.0 and scans everygo.workmodule (operatorandapiwithenvtest,test/e2ewithe2e, andapiagain withpostgres), failing on any reachable finding..github/workflows/vuln-weekly.yamlruns the same scan onmasterevery Monday at 04:00 UTC and on demand.How:
hack/check-govulncheck_test.shproves the gate offline against a synthetic advisory DB inhack/testdata/govulncheck/db. A module callingvulnfixture.Badmust exit 3, and one calling onlyvulnfixture.Goodmust exit 0. The fixture module is vendored at v1.0.0 into a temp dir rather than reached through a directoryreplace, because govulncheck never reports a module with an empty version (affected()in x/vulninternal/vulncheck/vulncheck.go); tasks.md T016 notes this. T015–T020; T021 (fix what the first run reports, flip G-01) follows from this PR's CI.🤖 Generated with Claude Code
Generated by Claude Code