diff --git a/.github/workflows/cli-ci.yml b/.github/workflows/cli-ci.yml index 70dfd5c00da..f7779194653 100644 --- a/.github/workflows/cli-ci.yml +++ b/.github/workflows/cli-ci.yml @@ -21,12 +21,12 @@ jobs: steps: - uses: actions/setup-go@v3 with: - go-version: "^1.20.0" + go-version: "^1.21.0" - uses: actions/checkout@v3 - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: - version: v1.51.2 + version: v1.54.1 args: -v --timeout 10m0s working-directory: cli/azd diff --git a/cli/azd/ci-build.ps1 b/cli/azd/ci-build.ps1 index e67b29d3870..025c687bb43 100644 --- a/cli/azd/ci-build.ps1 +++ b/cli/azd/ci-build.ps1 @@ -132,43 +132,52 @@ function PrintFlags() { } } -Write-Host "Running: go build ``" -PrintFlags -flags $buildFlags -go build @buildFlags - -if ($BuildRecordMode) { - $recordFlagPresent = $false - for ($i = 0; $i -lt $buildFlags.Length; $i++) { - if ($buildFlags[$i].StartsWith("-tags=")) { - $recordFlagPresent = $true - $buildFlags[$i] += ",record" +$oldGOEXPERIMENT = $env:GOEXPERIMENT +# Enable the loopvar experiment, which makes the loop variaible for go loops like `range` behave as most folks would expect. +# the go team is exploring making this default in the future, and we'd like to opt into the behavior now. +$env:GOEXPERIMENT="loopvar" + +try { + Write-Host "Running: go build ``" + PrintFlags -flags $buildFlags + go build @buildFlags + + if ($BuildRecordMode) { + $recordFlagPresent = $false + for ($i = 0; $i -lt $buildFlags.Length; $i++) { + if ($buildFlags[$i].StartsWith("-tags=")) { + $recordFlagPresent = $true + $buildFlags[$i] += ",record" + } + } + + if (-not $recordFlagPresent) { + $buildFlags[$i] += "-tags=record" + } + + $outputFlag = "-o=azd-record" + if ($IsWindows) { + $outputFlag += ".exe" } + $buildFlags += $outputFlag + + Write-Host "Running: go build (record) ``" + PrintFlags -flags $buildFlags + go build @buildFlags } - - if (-not $recordFlagPresent) { - $buildFlags[$i] += "-tags=record" + + if ($LASTEXITCODE) { + Write-Host "Error running go build" + exit $LASTEXITCODE } - - $outputFlag = "-o=azd-record" + Write-Host "go build succeeded" + if ($IsWindows) { - $outputFlag += ".exe" + Write-Host "Windows exe file version info" + $azdExe = Get-Item azd.exe + Write-Host "File Version: $($azdExe.VersionInfo.FileVersionRaw)" + Write-Host "Product Version: $($azdExe.VersionInfo.ProductVersionRaw)" } - $buildFlags += $outputFlag - - Write-Host "Running: go build (record) ``" - PrintFlags -flags $buildFlags - go build @buildFlags -} - -if ($LASTEXITCODE) { - Write-Host "Error running go build" - exit $LASTEXITCODE -} -Write-Host "go build succeeded" - -if ($IsWindows) { - Write-Host "Windows exe file version info" - $azdExe = Get-Item azd.exe - Write-Host "File Version: $($azdExe.VersionInfo.FileVersionRaw)" - Write-Host "Product Version: $($azdExe.VersionInfo.ProductVersionRaw)" +} finally { + $env:GOEXPERIMENT = $oldGOEXPERIMENT } \ No newline at end of file diff --git a/cli/azd/ci-test.ps1 b/cli/azd/ci-test.ps1 index 210bff616c5..f1d775c82bd 100644 --- a/cli/azd/ci-test.ps1 +++ b/cli/azd/ci-test.ps1 @@ -50,11 +50,22 @@ if ($ShortMode) { Write-Host "Running integration tests..." $intCoverDir = New-EmptyDirectory -Path $IntegrationTestCoverageDir +$oldGOCOVERDIR = $env:GOCOVERDIR +$oldGOEXPERIMENT = $env:GOEXPERIMENT + # GOCOVERDIR enables any binaries (in this case, azd.exe) built with '-cover', # to write out coverage output to the specific directory. $env:GOCOVERDIR = $intCoverDir.FullName +# Enable the loopvar experiment, which makes the loop variaible for go loops like `range` behave as most folks would expect. +# the go team is exploring making this default in the future, and we'd like to opt into the behavior now. +$env:GOEXPERIMENT="loopvar" -& $gotestsum -- ./test/... -v -timeout $IntegrationTestTimeout -if ($LASTEXITCODE) { - exit $LASTEXITCODE -} +try { + & $gotestsum -- ./test/... -v -timeout $IntegrationTestTimeout + if ($LASTEXITCODE) { + exit $LASTEXITCODE + } +} finally { + $env:GOCOVERDIR = $oldGOCOVERDIR + $env:GOEXPERIMENT = $oldGOEXPERIMENT +} \ No newline at end of file diff --git a/cli/azd/cmd/cmd_help.go b/cli/azd/cmd/cmd_help.go index c4f3483312e..b751b47ea8c 100644 --- a/cli/azd/cmd/cmd_help.go +++ b/cli/azd/cmd/cmd_help.go @@ -5,12 +5,12 @@ package cmd import ( "fmt" + "slices" "strings" "github.com/azure/azure-dev/cli/azd/pkg/output" "github.com/spf13/cobra" "github.com/spf13/pflag" - "golang.org/x/exp/slices" ) const ( diff --git a/cli/azd/cmd/cobra_builder.go b/cli/azd/cmd/cobra_builder.go index 63da0cdfc31..85361de6833 100644 --- a/cli/azd/cmd/cobra_builder.go +++ b/cli/azd/cmd/cobra_builder.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "log" + "slices" "strconv" "strings" @@ -19,7 +20,6 @@ import ( "github.com/azure/azure-dev/cli/azd/pkg/tools" "github.com/azure/azure-dev/cli/azd/pkg/tools/azcli" "github.com/spf13/cobra" - "golang.org/x/exp/slices" ) const cDocsFlagName = "docs" diff --git a/cli/azd/internal/repository/initializer_test.go b/cli/azd/internal/repository/initializer_test.go index 504dd14b329..e72ee933ec3 100644 --- a/cli/azd/internal/repository/initializer_test.go +++ b/cli/azd/internal/repository/initializer_test.go @@ -7,6 +7,7 @@ import ( "os" "path/filepath" "runtime" + "slices" "strings" "testing" @@ -21,7 +22,6 @@ import ( "github.com/azure/azure-dev/cli/azd/test/mocks/mockinput" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "golang.org/x/exp/slices" ) func Test_Initializer_Initialize(t *testing.T) { diff --git a/cli/azd/internal/telemetry/storage_test.go b/cli/azd/internal/telemetry/storage_test.go index 1ab397da89d..d806ad82329 100644 --- a/cli/azd/internal/telemetry/storage_test.go +++ b/cli/azd/internal/telemetry/storage_test.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "path/filepath" + "slices" "testing" "time" @@ -12,7 +13,6 @@ import ( "github.com/benbjohnson/clock" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "golang.org/x/exp/slices" ) // The tests in this file intentionally interacts with the filesystem (important implementation detail). diff --git a/cli/azd/internal/telemetry/uploader_test.go b/cli/azd/internal/telemetry/uploader_test.go index 49cb82f31d1..72483c38cc3 100644 --- a/cli/azd/internal/telemetry/uploader_test.go +++ b/cli/azd/internal/telemetry/uploader_test.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "math/rand" + "slices" "strconv" "testing" "time" @@ -11,7 +12,6 @@ import ( appinsightsexporter "github.com/azure/azure-dev/cli/azd/internal/telemetry/appinsights-exporter" "github.com/benbjohnson/clock" "github.com/stretchr/testify/assert" - "golang.org/x/exp/slices" ) type InMemoryItem struct { diff --git a/cli/azd/internal/tracing/baggage/baggage.go b/cli/azd/internal/tracing/baggage/baggage.go index f4cb971a2b9..aa48b013d32 100644 --- a/cli/azd/internal/tracing/baggage/baggage.go +++ b/cli/azd/internal/tracing/baggage/baggage.go @@ -4,8 +4,9 @@ package baggage import ( - "go.opentelemetry.io/otel/attribute" "golang.org/x/exp/maps" + + "go.opentelemetry.io/otel/attribute" ) // An immutable object safe for concurrent use. diff --git a/cli/azd/pkg/account/manager.go b/cli/azd/pkg/account/manager.go index 66b38740cf9..bb212f839b3 100644 --- a/cli/azd/pkg/account/manager.go +++ b/cli/azd/pkg/account/manager.go @@ -6,9 +6,9 @@ import ( "fmt" "log" "os" + "slices" "github.com/azure/azure-dev/cli/azd/pkg/config" - "golang.org/x/exp/slices" ) // JSON document path locations for default subscription & location diff --git a/cli/azd/pkg/account/manager_test.go b/cli/azd/pkg/account/manager_test.go index fb098b28928..0883d6f4593 100644 --- a/cli/azd/pkg/account/manager_test.go +++ b/cli/azd/pkg/account/manager_test.go @@ -4,6 +4,7 @@ import ( "context" "errors" "net/http" + "slices" "testing" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions" @@ -15,7 +16,6 @@ import ( "github.com/azure/azure-dev/cli/azd/test/mocks/mockhttp" "github.com/azure/azure-dev/cli/azd/test/mocks/mockinput" "github.com/stretchr/testify/require" - "golang.org/x/exp/slices" ) func Test_GetAccountDefaults(t *testing.T) { diff --git a/cli/azd/pkg/auth/errors.go b/cli/azd/pkg/auth/errors.go index b821d8f0e11..49d6754c04c 100644 --- a/cli/azd/pkg/auth/errors.go +++ b/cli/azd/pkg/auth/errors.go @@ -8,9 +8,9 @@ import ( "io" "log" "net/http" + "slices" msal "github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors" - "golang.org/x/exp/slices" ) const cLoginCmd = "azd auth login" diff --git a/cli/azd/pkg/azureutil/location.go b/cli/azd/pkg/azureutil/location.go index cd4e25678ef..eafac4e2ec7 100644 --- a/cli/azd/pkg/azureutil/location.go +++ b/cli/azd/pkg/azureutil/location.go @@ -7,12 +7,12 @@ import ( "context" "fmt" "os" + "slices" "strings" "github.com/azure/azure-dev/cli/azd/pkg/account" "github.com/azure/azure-dev/cli/azd/pkg/environment" "github.com/azure/azure-dev/cli/azd/pkg/input" - "golang.org/x/exp/slices" ) // PromptLocation asks the user to select a location from a list of supported azure locations for a given subscription. @@ -48,9 +48,9 @@ func PromptLocationWithFilter( } } - slices.SortFunc(locations, func(a, b account.Location) bool { + slices.SortFunc(locations, func(a, b account.Location) int { return strings.Compare( - strings.ToLower(a.RegionalDisplayName), strings.ToLower(b.RegionalDisplayName)) < 0 + strings.ToLower(a.RegionalDisplayName), strings.ToLower(b.RegionalDisplayName)) }) // Allow the environment variable `AZURE_LOCATION` to control the default value for the location diff --git a/cli/azd/pkg/environment/environment.go b/cli/azd/pkg/environment/environment.go index a80af5640b8..66c0fa40c76 100644 --- a/cli/azd/pkg/environment/environment.go +++ b/cli/azd/pkg/environment/environment.go @@ -11,13 +11,14 @@ import ( "regexp" "strings" + "maps" + "github.com/azure/azure-dev/cli/azd/internal/tracing" "github.com/azure/azure-dev/cli/azd/internal/tracing/fields" "github.com/azure/azure-dev/cli/azd/pkg/config" "github.com/azure/azure-dev/cli/azd/pkg/environment/azdcontext" "github.com/azure/azure-dev/cli/azd/pkg/osutil" "github.com/joho/godotenv" - "golang.org/x/exp/maps" ) // EnvNameEnvVarName is the name of the key used to store the envname property in the environment. diff --git a/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go b/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go index 905880b94d5..c3bea0174c1 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go +++ b/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go @@ -12,6 +12,7 @@ import ( "math" "os" "path/filepath" + "slices" "strconv" "strings" "time" @@ -38,7 +39,6 @@ import ( "github.com/benbjohnson/clock" "github.com/drone/envsubst" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" ) const DefaultModule = "main" @@ -715,8 +715,8 @@ func (p *BicepProvider) findCompletedDeployments( return nil, err } - slices.SortFunc(deployments, func(x, y *armresources.DeploymentExtended) bool { - return x.Properties.Timestamp.After(*y.Properties.Timestamp) + slices.SortFunc(deployments, func(x, y *armresources.DeploymentExtended) int { + return x.Properties.Timestamp.Compare(*y.Properties.Timestamp) }) // If hint is not provided, use the environment name as the hint diff --git a/cli/azd/pkg/infra/provisioning/bicep/prompt.go b/cli/azd/pkg/infra/provisioning/bicep/prompt.go index 28cc090c6ad..359a51fcabd 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/prompt.go +++ b/cli/azd/pkg/infra/provisioning/bicep/prompt.go @@ -4,13 +4,13 @@ import ( "context" "encoding/json" "fmt" + "slices" "strconv" "github.com/azure/azure-dev/cli/azd/pkg/account" "github.com/azure/azure-dev/cli/azd/pkg/azure" "github.com/azure/azure-dev/cli/azd/pkg/input" "github.com/azure/azure-dev/cli/azd/pkg/output" - "golang.org/x/exp/slices" . "github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning" ) diff --git a/cli/azd/pkg/pipeline/github_provider.go b/cli/azd/pkg/pipeline/github_provider.go index db52a644226..10e6b3863c2 100644 --- a/cli/azd/pkg/pipeline/github_provider.go +++ b/cli/azd/pkg/pipeline/github_provider.go @@ -13,6 +13,7 @@ import ( "net/url" "path/filepath" "regexp" + "slices" "strings" "github.com/Azure/azure-sdk-for-go/sdk/azcore" @@ -31,7 +32,6 @@ import ( "github.com/azure/azure-dev/cli/azd/pkg/tools/azcli" "github.com/azure/azure-dev/cli/azd/pkg/tools/git" "github.com/azure/azure-dev/cli/azd/pkg/tools/github" - "golang.org/x/exp/slices" ) // GitHubScmProvider implements ScmProvider using GitHub as the provider diff --git a/cli/azd/pkg/pipeline/pipeline_manager.go b/cli/azd/pkg/pipeline/pipeline_manager.go index bc24ffd7eac..44c4954bfa8 100644 --- a/cli/azd/pkg/pipeline/pipeline_manager.go +++ b/cli/azd/pkg/pipeline/pipeline_manager.go @@ -9,6 +9,7 @@ import ( "fmt" "log" "path/filepath" + "slices" "strings" "time" @@ -25,7 +26,6 @@ import ( "github.com/azure/azure-dev/cli/azd/pkg/tools/azcli" "github.com/azure/azure-dev/cli/azd/pkg/tools/git" "github.com/sethvargo/go-retry" - "golang.org/x/exp/slices" ) type PipelineAuthType string diff --git a/cli/azd/pkg/project/project.go b/cli/azd/pkg/project/project.go index cd5eabdf653..62e33272671 100644 --- a/cli/azd/pkg/project/project.go +++ b/cli/azd/pkg/project/project.go @@ -7,6 +7,7 @@ import ( "log" "os" "path/filepath" + "slices" "strings" "github.com/azure/azure-dev/cli/azd/internal" @@ -16,7 +17,6 @@ import ( "github.com/azure/azure-dev/cli/azd/pkg/infra/provisioning" "github.com/azure/azure-dev/cli/azd/pkg/osutil" "github.com/blang/semver/v4" - "golang.org/x/exp/slices" "gopkg.in/yaml.v3" ) diff --git a/cli/azd/pkg/prompt/prompter.go b/cli/azd/pkg/prompt/prompter.go index 8052e578428..0e0aea4b4ec 100644 --- a/cli/azd/pkg/prompt/prompter.go +++ b/cli/azd/pkg/prompt/prompter.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "os" + "slices" "strings" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" @@ -15,7 +16,6 @@ import ( "github.com/azure/azure-dev/cli/azd/pkg/environment" "github.com/azure/azure-dev/cli/azd/pkg/input" "github.com/azure/azure-dev/cli/azd/pkg/tools/azcli" - "golang.org/x/exp/slices" ) type LocationFilterPredicate func(loc account.Location) bool @@ -112,8 +112,8 @@ func (p *DefaultPrompter) PromptResourceGroup(ctx context.Context) (string, erro return "", fmt.Errorf("listing resource groups: %w", err) } - slices.SortFunc(groups, func(a, b azcli.AzCliResource) bool { - return strings.Compare(a.Name, b.Name) < 0 + slices.SortFunc(groups, func(a, b azcli.AzCliResource) int { + return strings.Compare(a.Name, b.Name) }) choices := make([]string, len(groups)+1) diff --git a/cli/azd/pkg/tools/azcli/container_registry.go b/cli/azd/pkg/tools/azcli/container_registry.go index f6a15e0e15d..35d8e8403d2 100644 --- a/cli/azd/pkg/tools/azcli/container_registry.go +++ b/cli/azd/pkg/tools/azcli/container_registry.go @@ -7,6 +7,7 @@ import ( "log" "net/http" "net/url" + "slices" "strings" "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" @@ -17,7 +18,6 @@ import ( "github.com/azure/azure-dev/cli/azd/pkg/azure" "github.com/azure/azure-dev/cli/azd/pkg/httputil" "github.com/azure/azure-dev/cli/azd/pkg/tools/docker" - "golang.org/x/exp/slices" ) type dockerCredentials struct { diff --git a/cli/azd/test/functional/cli_test.go b/cli/azd/test/functional/cli_test.go index 05cb590f753..1db7fc1b283 100644 --- a/cli/azd/test/functional/cli_test.go +++ b/cli/azd/test/functional/cli_test.go @@ -20,6 +20,7 @@ import ( "path" "path/filepath" "runtime" + "slices" "strings" "testing" "time" @@ -43,7 +44,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.opentelemetry.io/otel/attribute" - "golang.org/x/exp/slices" ) // The current running configuration for the test suite. diff --git a/cli/azd/test/recording/proxy.go b/cli/azd/test/recording/proxy.go index 508918fd7e1..836115e8dd8 100644 --- a/cli/azd/test/recording/proxy.go +++ b/cli/azd/test/recording/proxy.go @@ -11,12 +11,12 @@ import ( "fmt" "io" "io/fs" + "log/slog" "net" "net/http" "net/url" "strings" - "golang.org/x/exp/slog" "gopkg.in/dnaeon/go-vcr.v3/recorder" ) diff --git a/cli/azd/test/recording/recording.go b/cli/azd/test/recording/recording.go index 1b1eafcb56c..8a93eb1a49c 100644 --- a/cli/azd/test/recording/recording.go +++ b/cli/azd/test/recording/recording.go @@ -14,6 +14,7 @@ import ( "errors" "fmt" "io" + "log/slog" "net/http" "net/http/httptest" "net/url" @@ -24,7 +25,6 @@ import ( "testing" "time" - "golang.org/x/exp/slog" "gopkg.in/dnaeon/go-vcr.v3/cassette" "gopkg.in/dnaeon/go-vcr.v3/recorder" "gopkg.in/yaml.v3" diff --git a/eng/pipelines/templates/steps/setup-go.yml b/eng/pipelines/templates/steps/setup-go.yml index 575c392200f..a0899dbd06f 100644 --- a/eng/pipelines/templates/steps/setup-go.yml +++ b/eng/pipelines/templates/steps/setup-go.yml @@ -1,5 +1,5 @@ parameters: - GoVersion: 1.20.3 + GoVersion: 1.21.0 Condition: succeeded() steps: diff --git a/go.mod b/go.mod index 1780d794a4b..b4eb10f696a 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/azure/azure-dev -go 1.20 +go 1.21 require ( github.com/AlecAivazis/survey/v2 v2.3.2 diff --git a/go.sum b/go.sum index e1c255e2353..38e0b2255d1 100644 --- a/go.sum +++ b/go.sum @@ -76,6 +76,7 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerregistry/armconta github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v2 v2.2.0 h1:3L+gX5ssCABAToH0VQ64/oNz7rr+ShW+2sB+sonzIlY= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v2 v2.2.0/go.mod h1:4gUds0dEPFIld6DwHfbo0cLBljyIyI5E5ciPb5MLi3Q= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.0.0 h1:lMW1lD/17LUA5z1XTURo7LcVG2ICBPlyMHjIUrcFZNQ= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.0.0/go.mod h1:ceIuwmxDWptoW3eCqSXlnPsZFKh4X+R38dWPv7GS9Vs= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault v1.0.0 h1:Jc2KcpCDMu7wJfkrzn7fs/53QMDXH78GuqnH4HOd7zs= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/keyvault/armkeyvault v1.0.0/go.mod h1:PFVgFsclKzPqYRT/BiwpfUN22cab0C7FlgXR3iWpwMo= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.0.0 h1:ECsQtyERDVz3NP3kvDOTLvbQhqWp/x9EsGKtb4ogUr8= @@ -154,6 +155,7 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -195,6 +197,7 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -249,6 +252,7 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=