Skip to content

[OPE-197] chore(security): bump Go to 1.25.11 + golangci-lint v2#130

Merged
singret merged 1 commit into
mainfrom
ope-197-go-125-golangci-v2
Jun 23, 2026
Merged

[OPE-197] chore(security): bump Go to 1.25.11 + golangci-lint v2#130
singret merged 1 commit into
mainfrom
ope-197-go-125-golangci-v2

Conversation

@singret

@singret singret commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Follow-up to OPE-196 (#129). Clears the Go-side security debt that needed a toolchain bump.

Why

The scheduled Security Audit's Go job flags 7 Go standard-library vulns (net/textproto, crypto/x509, html/template, net). These live in Go itself — only a patched toolchain fixes them, and Go 1.24 is EOL, so the fixes exist only in 1.25.x.

Changes

Go 1.25:

  • go.mod: toolchain go1.24.5 -> go1.25.11
  • ci.yml / security.yml: go-version -> 1.25
  • Dockerfile: golang:alpine -> golang:1.25-alpine (both stages)

golangci-lint v2 (forced by the bump): the pinned v1.64.8 is built with go1.24 and refuses go1.25 targets.

  • golangci-lint-action @v6 -> @v7; .golangci.yml migrated to v2 format (same linter set — v1's enabled list == v2's standard default).
  • v2 folds stylecheck/quickfix into staticcheck, surfacing 14 findings, all fixed:
    • ST1005 capitalized error strings (opsgenie, teams_service, import_opsgenie)
    • QF1012 fmt.Fprintf(&b, …) over b.WriteString(fmt.Sprintf(…)) (ai_service, slack_event_handler)
    • QF1003 tagged switch (slack_message_builder)

Verification (all on go1.25.11)

  • govulncheck ./... -> 0 vulnerabilities
  • golangci-lint run (v2.12.2) -> 0 issues
  • go build ./... + go test ./... -> 17 packages ok, 0 failures (error-string changes broke no tests)

After this lands

The scheduled Security Audit goes fully green (Go job clean here; Node job already cleared by #129).

Not in scope (separate)

  • Remaining dev-tooling npm highs (vite/rollup/esbuild) — major vite bump
  • Node 20 action deprecation; stale only-verified trufflehog input
  • A recurring "bump current Go + deps" cadence so we don't drift onto EOL again

Closes OPE-197

Clears the 7 Go standard-library govulncheck findings (net/textproto,
crypto/x509, html/template, net) that can only be fixed by building with
a patched toolchain; Go 1.24 is EOL so the fixes exist only in 1.25.x.

- go.mod: toolchain go1.24.5 -> go1.25.11
- ci.yml / security.yml: go-version -> 1.25
- Dockerfile: golang:alpine -> golang:1.25-alpine (both stages)

The toolchain bump requires golangci-lint v2 (the pinned v1.64.8 was built
with go1.24 and refuses go1.25 targets):
- golangci-lint-action @v6 -> @v7; migrate .golangci.yml to v2 format
- v2 folds stylecheck/quickfix into staticcheck, surfacing 14 findings,
  all fixed: ST1005 capitalized error strings (opsgenie, teams, import)
  and QF1012/QF1003 (fmt.Fprintf over WriteString(Sprintf); tagged switch)

Verified on go1.25.11: govulncheck 0 vulnerabilities; golangci-lint v2
0 issues; go build + go test ./... (17 pkgs, 0 fail).
@singret singret merged commit 65d8c19 into main Jun 23, 2026
4 checks passed
@singret singret deleted the ope-197-go-125-golangci-v2 branch June 23, 2026 04:26
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.

1 participant