chore(go): upgrade toolchain to Go 1.27 and bump vulnerable dependencies - #154
Open
devin-ai-integration[bot] wants to merge 2 commits into
Open
chore(go): upgrade toolchain to Go 1.27 and bump vulnerable dependencies#154devin-ai-integration[bot] wants to merge 2 commits into
devin-ai-integration[bot] wants to merge 2 commits into
Conversation
Go 1.24 is out of the support window; govulncheck reported 31 reachable advisories on the pinned 1.24.13 toolchain (25 stdlib, 6 deps). Bump the Docker build images, go.mod and CI to Go 1.27 and upgrade pgx, go-jose, phonenumbers, OpenTelemetry, gRPC, x/net and x/text. staticcheck is bumped to a release that supports Go 1.27.
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
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
Production currently builds with
golang:1.24.13, which is outside Go's support window (only 1.27/1.26 receive security patches).govulncheck ./...on the pinned toolchain reported 31 vulnerabilities reachable from harp's code — 25 in the standard library, 6 in dependencies. After this PR it reports 1 (see below).Changes:
Dockerfile/dev.Dockerfile:golang:1.24.13→golang:1.27.1go.mod:go 1.24.0+toolchain go1.24.11→go 1.27.0(toolchain line dropped; thegodirective is enough).github/workflows/audit.yaml:setup-go1.24.x→1.27.x;staticcheck@v0.6.1→@v0.8.1(v0.6.1 does not understand Go 1.27 export data)jackc/pgx/v5v5.8.0 → v5.9.2go-jose/go-jose/v4v4.1.3 → v4.1.4nyaruka/phonenumbersv1.0.73 → v1.8.1go.opentelemetry.io/otel{,/sdk,/metric,/trace,/sdk/metric}v1.39.0 → v1.43.0google.golang.org/grpcv1.78.0 → v1.82.1golang.org/x/netv0.49.0 → v0.56.0,golang.org/x/textv0.33.0 → v0.39.0 (and thex/crypto,x/sys,x/oauth2,x/sync,x/mod,x/toolsversions they pull in).claude/skills/ci-pipeline/SKILL.mdupdated to match the new versions.No application code changes.
go mod tidyalso merged the tworequireblocks, which is why thego.moddiff looks larger than it is.Deliberately left alone:
github.com/go-chi/chiv1.5.5The one remaining govulncheck finding is
GO-2026-4316(open redirect in chi'sRedirectSlashesmiddleware, "Fixed in: N/A" for the v1 line). Harp does not useRedirectSlashes, so it isn't exploitable here. Moving tochi/v5is a module-path change across every handler file and chi v5.3.x deprecatesmiddleware.RealIP(which harp uses, and which fails the new staticcheck). That migration is done in the rate-limiter PR, where replacingRealIPis the actual point of the change — keeping this PR a pure toolchain/dependency bump.Verification (with
GOTOOLCHAIN=go1.27.1)gofmt -l .clean,go mod verifyok,go build ./...,go vet ./...,staticcheck ./...(v0.8.1) all passgo test -race ./...passesgovulncheck ./...: 31 → 1 (the chiRedirectSlashesadvisory above)Related: #153 (push endpoint hardening); rate-limiter PR to follow.
Link to Devin session: https://app.devin.ai/sessions/7730c9bccc574233a0c2650ba204bec2
Open in Devin Desktop: https://app.devin.ai/desktop/session/7730c9bccc574233a0c2650ba204bec2?variant=devin
Requested by: @balebbae