Stop pinning Go to patch versions, use stable in CI (#1137)
<!-- Provide a brief summary of your changes --> ## Motivation and Context <!-- Why is this change needed? What problem does it solve? --> We keep bumping `go 1.26.x` across the repo every time a new Go patch drops ## How Has This Been Tested? <!-- Have you tested this in a real application? Which scenarios were tested? --> - **`go.mod` / `deploy/go.mod`**: `go 1.25.8` → `go 1.26` (minor only — "this module needs Go 1.26") - **All CI workflows**: `go-version-file: 'go.mod'` → `go-version: 'stable'` — CI always uses the latest stable Go, no more bump PRs - **govulncheck**: removed hardcoded `go-version-input: '1.26.1'` → `go-version-input: 'stable'` ## Breaking Changes <!-- Will users need to update their code or configurations? --> ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [ ] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [ ] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context <!-- Add any other context, implementation notes, or design decisions --> Signed-off-by: Radoslav Dimitrov <radoslav@stacklok.com>
This commit is contained in:
parent
9b32a5c187
commit
0fc4606be2
13 changed files with 23 additions and 21 deletions
10
.github/workflows/ci.yml
vendored
10
.github/workflows/ci.yml
vendored
|
|
@ -21,13 +21,13 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Run lint
|
||||
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20
|
||||
with:
|
||||
version: v2.4.0
|
||||
version: v2.11.4
|
||||
|
||||
- name: Validate schemas and examples
|
||||
run: make validate
|
||||
|
|
@ -38,9 +38,7 @@ jobs:
|
|||
- name: Run govulncheck
|
||||
uses: golang/govulncheck-action@v1
|
||||
with:
|
||||
# Use Go 1.26.1 to pick up crypto/x509 vulnerability fixes (GO-2026-4600, GO-2026-4599).
|
||||
# go.mod stays at go 1.25.8 for golangci-lint compatibility until it supports Go 1.26.
|
||||
go-version-input: '1.26.1'
|
||||
go-version-input: 'stable'
|
||||
go-package: ./...
|
||||
repo-checkout: false
|
||||
|
||||
|
|
@ -55,7 +53,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Set up ko
|
||||
|
|
|
|||
2
.github/workflows/deploy-production.yml
vendored
2
.github/workflows/deploy-production.yml
vendored
|
|
@ -28,7 +28,7 @@ jobs:
|
|||
- name: Setup Go
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
|
||||
with:
|
||||
go-version-file: 'deploy/go.mod'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Setup Pulumi
|
||||
|
|
|
|||
4
.github/workflows/deploy-staging.yml
vendored
4
.github/workflows/deploy-staging.yml
vendored
|
|
@ -27,7 +27,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Set up ko
|
||||
|
|
@ -75,7 +75,7 @@ jobs:
|
|||
- name: Setup Go
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
|
||||
with:
|
||||
go-version-file: 'deploy/go.mod'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Setup Pulumi
|
||||
|
|
|
|||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -21,7 +21,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Install cosign
|
||||
|
|
@ -50,7 +50,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
go-version: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Set up ko
|
||||
|
|
|
|||
|
|
@ -66,6 +66,11 @@ linters:
|
|||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
rules:
|
||||
# httptest.NewRequest is idiomatic in tests; noctx is not useful there.
|
||||
- path: _test\.go
|
||||
linters:
|
||||
- noctx
|
||||
paths:
|
||||
- third_party$
|
||||
- builtin$
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ func parseRawPrivateKey(curve elliptic.Curve, privateKeyBytes []byte) (*ecdsa.Pr
|
|||
return nil, fmt.Errorf("invalid private scalar")
|
||||
}
|
||||
|
||||
x, y := curve.ScalarBaseMult(d.Bytes())
|
||||
x, y := curve.ScalarBaseMult(d.Bytes()) //nolint:staticcheck // SA1019: needs crypto/ecdh refactor
|
||||
return &ecdsa.PrivateKey{
|
||||
PublicKey: ecdsa.PublicKey{
|
||||
Curve: curve,
|
||||
|
|
@ -192,7 +192,7 @@ func PrintEcdsaP384KeyInfo(pubKey ecdsa.PublicKey) {
|
|||
}
|
||||
|
||||
func printEcdsaKeyInfo(k string, pubKey ecdsa.PublicKey) {
|
||||
compressed := elliptic.MarshalCompressed(pubKey.Curve, pubKey.X, pubKey.Y)
|
||||
compressed := elliptic.MarshalCompressed(pubKey.Curve, pubKey.X, pubKey.Y) //nolint:staticcheck // SA1019: needs crypto/ecdh refactor
|
||||
pubKeyString := base64.StdEncoding.EncodeToString(compressed)
|
||||
fmt.Fprint(os.Stdout, "Expected proof record:\n")
|
||||
fmt.Fprintf(os.Stdout, "v=MCPv1; k=%s; p=%s\n", k, pubKeyString)
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ func (o *GitHubOIDCProvider) getOIDCTokenFromGitHub(ctx context.Context) (string
|
|||
fullURL := requestURL + "&audience=mcp-registry"
|
||||
|
||||
// Create the request
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil)
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil) //nolint:gosec // G704: URL is from GitHub Actions ACTIONS_ID_TOKEN_REQUEST_URL env var
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to create request: %w", err)
|
||||
}
|
||||
|
|
@ -133,7 +133,7 @@ func (o *GitHubOIDCProvider) getOIDCTokenFromGitHub(ctx context.Context) (string
|
|||
|
||||
// Make the request
|
||||
client := &http.Client{}
|
||||
resp, err := client.Do(req)
|
||||
resp, err := client.Do(req) //nolint:gosec // G704: URL is from GitHub Actions env var
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to send request: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
module github.com/modelcontextprotocol/registry/deploy/infra
|
||||
|
||||
go 1.25.8
|
||||
go 1.26
|
||||
|
||||
require (
|
||||
github.com/pulumi/pulumi-gcp/sdk/v8 v8.41.1
|
||||
|
|
|
|||
2
go.mod
2
go.mod
|
|
@ -1,6 +1,6 @@
|
|||
module github.com/modelcontextprotocol/registry
|
||||
|
||||
go 1.25.8
|
||||
go 1.26
|
||||
|
||||
require (
|
||||
cloud.google.com/go/kms v1.26.0
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ func TestOIDCHandler_ExchangeToken(t *testing.T) {
|
|||
token string
|
||||
expectedError bool
|
||||
}{
|
||||
{
|
||||
{ //nolint:gosec // G101: test data, not real credentials
|
||||
name: "successful token exchange with publish permissions",
|
||||
config: &config.Config{
|
||||
OIDCEnabled: true,
|
||||
|
|
|
|||
|
|
@ -764,7 +764,6 @@ func hashServerName(name string) int64 {
|
|||
hash ^= uint64(name[i])
|
||||
hash *= prime64
|
||||
}
|
||||
//nolint:gosec // Intentional conversion with masking to 63 bits
|
||||
return int64(hash & 0x7FFFFFFFFFFFFFFF)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ func NewTestDB(t *testing.T) Database {
|
|||
defer cancel()
|
||||
|
||||
// Connect to postgres database
|
||||
adminURI := "postgres://mcpregistry:mcpregistry@localhost:5432/postgres?sslmode=disable"
|
||||
adminURI := "postgres://mcpregistry:mcpregistry@localhost:5432/postgres?sslmode=disable" //nolint:gosec // G101: test database credentials
|
||||
adminConn, err := pgx.Connect(ctx, adminURI)
|
||||
require.NoError(t, err, "Failed to connect to PostgreSQL. Make sure PostgreSQL is running via: docker-compose up -d postgres")
|
||||
defer adminConn.Close(ctx)
|
||||
|
|
|
|||
|
|
@ -284,7 +284,7 @@ func ConvertJSONPointerToBracketNotation(jsonPointer string) string {
|
|||
// Check if part is a pure number (array index)
|
||||
if _, err := strconv.Atoi(part); err == nil {
|
||||
// It's a numeric index - use bracket notation
|
||||
result.WriteString(fmt.Sprintf("[%s]", part))
|
||||
fmt.Fprintf(&result, "[%s]", part)
|
||||
// Add dot after bracket if next part exists and is a field name (not a number)
|
||||
if i < len(parts)-1 {
|
||||
nextPart := parts[i+1]
|
||||
|
|
|
|||
Loading…
Reference in a new issue