ci: fix govulncheck (pin v1.3.0) + bump Go to 1.26.4#185
Conversation
govulncheck@latest floated to v1.4.0, which bundles x/tools v0.46.0.
That version panics ("ForEachElement called on type containing
*types.TypeParam") during symbol-level SSA analysis of generics under
Go 1.26, crashing the job before it reports anything. main and every
open PR since early May fail identically — it's the scanner, not the code.
Pin to v1.3.0 (x/tools v0.44.0), the last release before the regression.
It keeps full symbol-level reachability analysis and runs clean on the
pinned 1.26.2 toolchain. Bump once upstream ships the x/tools fix.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (2)
📝 WalkthroughWalkthroughThe CI workflow updates the base Go toolchain from ChangesCI Dependency and Tool Version Updates
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
With govulncheck no longer panicking, it surfaces four reachable stdlib vulnerabilities that 1.26.2 is exposed to (the crash had been masking them): GO-2026-4918 net/http HTTP/2 infinite loop fixed in 1.26.3 GO-2026-4971 net fixed in 1.26.3 GO-2026-5037 crypto/x509 fixed in 1.26.4 GO-2026-5039 net/textproto fixed in 1.26.4 1.26.4 is the latest 1.26 patch and clears all four. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/ci.yml:
- Around line 19-24: The GO_VERSION has been updated to 1.26.4 in the ci.yml
workflow to address security vulnerabilities, but the release.yml workflow still
pins GO_VERSION to 1.26.2. Update the GO_VERSION variable in the release
workflow to 1.26.4 to ensure consistent and secure Go versions across both the
CI and release build paths.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 0973210e-0716-40a8-8862-4f98fcd486c0
📒 Files selected for processing (1)
.github/workflows/ci.yml
release.yml, auto-release.yml, and docs-sync.yml hardcoded go-version "1.26.2", drifting from ci.yml's 1.26.4. The two goreleaser paths (release.yml + auto-release.yml) build the shipped binaries and Docker images, so they were producing release artifacts on the same stdlib toolchain that ci.yml's govulncheck now flags (GO-2026-4918/-4971/ -5037/-5039). Bump all three to 1.26.4 and add a "keep in sync" pointer to ci.yml's GO_VERSION to stop the drift recurring. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fixes the
govulncheckjob, which has been failing onmainand every open PR since early May. Two distinct problems — the second was hidden behind the first.1. govulncheck was crashing (pin v1.3.0)
go install ...@latestfloated to govulncheck v1.4.0, which bundles x/tools v0.46.0. That version panics during symbol-level call-graph analysis when it hits a generic type parameter under Go 1.26:GO_VERSIONand thegodirective hadn't changed since the initial commit, so the floating tool version was the only moving part. Pinned to v1.3.0 (x/tools v0.44.0), the last release before the regression — verified locally that v1.4.0 panics and v1.3.0 completes with full symbol-level reachability analysis. Matches the repo's existing pin convention (cf. gitleaks); Dependabot can bump it once upstream ships the x/tools fix.2. Pinned Go was behind on security patches (bump 1.26.2 → 1.26.4)
Once govulncheck actually ran, it reported four reachable stdlib vulnerabilities that 1.26.2 is exposed to — the crash had been masking them:
engine.executeHTTP,cmd.downloadAssetengine.executeHTTP,webhook.NewServerwebhook.NewServer(TLS)webhook.NewServer(header parsing)1.26.4 is the latest 1.26 patch and clears all four. This is the same bump-to-clear-stdlib-CVEs pattern already documented in the
GO_VERSIONcomment.🤖 Generated with Claude Code
Summary by CodeRabbit