From 2c4e7279905be1a76a58341cc2fe7856304aef96 Mon Sep 17 00:00:00 2001 From: elkaix Date: Thu, 1 Oct 2026 18:49:17 -0400 Subject: [PATCH 1/3] test(collect): port the replica-identity fixture to pggo #113 landed after #114 removed pgx from go.mod, so the test's pgx import left the collect package unbuildable under go vet / go test ./... --- internal/collect/replident_integration_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/collect/replident_integration_test.go b/internal/collect/replident_integration_test.go index 2a42a2d..5f522bd 100644 --- a/internal/collect/replident_integration_test.go +++ b/internal/collect/replident_integration_test.go @@ -6,11 +6,11 @@ import ( "testing" "time" - "github.com/jackc/pgx/v5" "github.com/pgrundev/pgbot/internal/collect" "github.com/pgrundev/pgbot/internal/conn" "github.com/pgrundev/pgbot/internal/findings" "github.com/pgrundev/pgbot/internal/model" + "github.com/pgrundev/pggo" ) // A publication over a table with no primary key is accepted by Postgres and only @@ -25,11 +25,11 @@ func TestIntegration_replicaIdentityMissing(t *testing.T) { ro := dsn(t) ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) defer cancel() - admin, err := pgx.Connect(ctx, su) + admin, err := pggo.Connect(ctx, su) if err != nil { t.Fatalf("admin connect: %v", err) } - t.Cleanup(func() { admin.Close(context.Background()) }) + t.Cleanup(func() { admin.Close() }) cleanup := func() { _, _ = admin.Exec(context.Background(), `DROP PUBLICATION IF EXISTS pgbot_it_pub`) @@ -37,7 +37,7 @@ func TestIntegration_replicaIdentityMissing(t *testing.T) { } cleanup() t.Cleanup(cleanup) - if _, err := admin.Exec(ctx, ` + if _, err := admin.SimpleQuery(ctx, ` CREATE TABLE public.pgbot_it_nopk (id bigint, note text); INSERT INTO public.pgbot_it_nopk VALUES (1, 'a'); CREATE PUBLICATION pgbot_it_pub FOR TABLE public.pgbot_it_nopk`); err != nil { From f9f65bd50ee652f136f37bde6f90b3abe7357e72 Mon Sep 17 00:00:00 2001 From: Alex Shapalov Date: Mon, 12 Oct 2026 11:38:32 -0700 Subject: [PATCH 2/3] build: move the toolchain to go1.27.2 for GO-2026-6613 and GO-2026-6617 govulncheck in CI started failing on two net/http vulnerabilities fixed in Go 1.27.2 (HPACK encoder race, HTTP/1 CONNECT desynchronization). Both are reachable from the MCP server and the AI HTTP clients. go1.27.2 builds and passes the unit suite; govulncheck now reports 0 vulnerabilities called. Co-Authored-By: Claude Fable 5.1 --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index e723abb..4698468 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/pgrundev/pgbot go 1.27 -toolchain go1.27.1 +toolchain go1.27.2 require ( github.com/BurntSushi/toml v1.6.0 From 82428016347f0cdf47daa1d9728bb5a3d1cb792e Mon Sep 17 00:00:00 2001 From: Alex Shapalov Date: Mon, 12 Oct 2026 11:45:19 -0700 Subject: [PATCH 3/3] ci: pin golangci-lint v2.14.0, the first release built against go1.27.2 v2.13.2 cannot load go1.27.2 export data ("export data version 5 is greater than maximum supported version 4"), so the lint job fails as soon as the toolchain moves. v2.14.0 is built with go1.27.2 and reports 0 issues on this tree. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 189082f..0332b06 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: # change the gate out from under a green PR. - name: golangci-lint run: | - go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.13.2 + go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.14.0 "$(go env GOPATH)/bin/golangci-lint" run ./... # A security-positioned tool must scan its own dependency tree. - name: govulncheck