From 6443b76f58e405792737fbed29bbf74bc04f93f2 Mon Sep 17 00:00:00 2001 From: Chris Eberle Date: Fri, 11 Sep 2026 11:23:41 -0700 Subject: [PATCH 1/2] chore: upgrade to Go 1.27.1 Bump the go directive from 1.26.4 to 1.27.1 and run `go mod tidy`, which consolidated the two indirect require blocks into one. No dependency versions changed and go.sum is untouched. Both CI workflows resolve their toolchain via `setup-go: go-version-file: go.mod`, so no workflow changes are needed. The Dockerfile is an alpine runtime image that copies a prebuilt binary, and nothing else in the repo pins a Go version. Co-Authored-By: Claude Opus 5 (1M context) --- go.mod | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index e85936f..421984c 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/amp-labs/cli -go 1.26.4 +go 1.27.1 require ( github.com/adrg/xdg v0.5.3 @@ -18,13 +18,6 @@ require ( sigs.k8s.io/yaml v1.6.0 ) -require ( - github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/spf13/pflag v1.0.10 // indirect - golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect -) - require ( github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect github.com/chzyer/readline v1.5.1 // indirect @@ -34,15 +27,19 @@ require ( github.com/go-viper/mapstructure/v2 v2.5.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.4.3 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/sagikazarmark/locafero v0.12.0 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.10.0 // indirect + github.com/spf13/pflag v1.0.10 // indirect github.com/subosito/gotenv v1.6.0 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.54.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/text v0.40.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) From 26ad14dc3ea8406d07a41b0cea8a7eb6dbf24312 Mon Sep 17 00:00:00 2001 From: Chris Eberle Date: Fri, 11 Sep 2026 11:32:35 -0700 Subject: [PATCH 2/2] ci: upgrade golangci-lint to v2.13.2 for the Go 1.27 target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit golangci-lint v2.9.0 refuses to run against a module targeting Go 1.27.1: "the Go language version (go1.26) used to build golangci-lint is lower than the targeted Go version (1.27.1)". v2.13.0 is the first release whose binaries are built with Go 1.27; this pins v2.13.2. The newer linter surfaces findings v2.9.0 never ran: - exhaustruct is deprecated in favor of exhaustruct_v5, so the existing disable entry no longer matched and the linter came back on (50 findings). Disable both names, following the wsl/wsl_v5 precedent already in this config. Same for gomodguard -> gomodguard_v2, which was only emitting a deprecation warning. - goconst: extract headerContentType/mimeApplicationJSON in request and objAccounts/objContacts in the manifest test. - staticcheck QF1012: fmt.Fprintf(&b, ...) over b.WriteString(fmt.Sprintf(...)). - modernize: errors.AsType[*json.SyntaxError] over errors.As. - gosec G124: set SameSite on the Clerk session cookie. Three gosec taint-analysis findings are annotated rather than changed, each with the reason inline: - G705 (login.go): the response is mustache-rendered and the sole interpolation is {{email}}, the escaping form. Verified by rendering a