vendor: update buildkit to v0.29.0-rc1
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
@@ -5,10 +5,10 @@ go 1.25.5
|
|||||||
require (
|
require (
|
||||||
github.com/Masterminds/semver/v3 v3.4.0
|
github.com/Masterminds/semver/v3 v3.4.0
|
||||||
github.com/Microsoft/go-winio v0.6.2
|
github.com/Microsoft/go-winio v0.6.2
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.32.7
|
github.com/aws/aws-sdk-go-v2/config v1.32.12
|
||||||
github.com/compose-spec/compose-go/v2 v2.9.1
|
github.com/compose-spec/compose-go/v2 v2.9.1
|
||||||
github.com/containerd/console v1.0.5
|
github.com/containerd/console v1.0.5
|
||||||
github.com/containerd/containerd/v2 v2.2.1
|
github.com/containerd/containerd/v2 v2.2.2
|
||||||
github.com/containerd/continuity v0.4.5
|
github.com/containerd/continuity v0.4.5
|
||||||
github.com/containerd/errdefs v1.0.0
|
github.com/containerd/errdefs v1.0.0
|
||||||
github.com/containerd/log v0.1.0
|
github.com/containerd/log v0.1.0
|
||||||
@@ -16,7 +16,7 @@ require (
|
|||||||
github.com/creack/pty v1.1.24
|
github.com/creack/pty v1.1.24
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
|
||||||
github.com/distribution/reference v0.6.0
|
github.com/distribution/reference v0.6.0
|
||||||
github.com/docker/cli v29.3.0+incompatible
|
github.com/docker/cli v29.3.1+incompatible
|
||||||
github.com/docker/cli-docs-tool v0.11.0
|
github.com/docker/cli-docs-tool v0.11.0
|
||||||
github.com/docker/docker v28.5.2+incompatible
|
github.com/docker/docker v28.5.2+incompatible
|
||||||
github.com/docker/go-units v0.5.0
|
github.com/docker/go-units v0.5.0
|
||||||
@@ -29,11 +29,11 @@ require (
|
|||||||
github.com/hashicorp/hcl/v2 v2.24.0
|
github.com/hashicorp/hcl/v2 v2.24.0
|
||||||
github.com/in-toto/in-toto-golang v0.10.0
|
github.com/in-toto/in-toto-golang v0.10.0
|
||||||
github.com/mitchellh/hashstructure/v2 v2.0.2
|
github.com/mitchellh/hashstructure/v2 v2.0.2
|
||||||
github.com/moby/buildkit v0.28.0
|
github.com/moby/buildkit v0.29.0-rc1
|
||||||
github.com/moby/go-archive v0.2.0
|
github.com/moby/go-archive v0.2.0
|
||||||
github.com/moby/moby/api v1.54.0
|
github.com/moby/moby/api v1.54.0
|
||||||
github.com/moby/moby/client v0.3.0
|
github.com/moby/moby/client v0.3.0
|
||||||
github.com/moby/policy-helpers v0.0.0-20260211190020-824747bfdd3c
|
github.com/moby/policy-helpers v0.0.0-20260324161837-b7c0b994300b
|
||||||
github.com/moby/sys/atomicwriter v0.1.0
|
github.com/moby/sys/atomicwriter v0.1.0
|
||||||
github.com/moby/sys/mountinfo v0.7.2
|
github.com/moby/sys/mountinfo v0.7.2
|
||||||
github.com/morikuni/aec v1.1.0
|
github.com/morikuni/aec v1.1.0
|
||||||
@@ -55,20 +55,20 @@ require (
|
|||||||
github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250408171107-3dd17559e117
|
github.com/tonistiigi/jaeger-ui-rest v0.0.0-20250408171107-3dd17559e117
|
||||||
github.com/zclconf/go-cty v1.17.0
|
github.com/zclconf/go-cty v1.17.0
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0
|
||||||
go.opentelemetry.io/otel v1.38.0
|
go.opentelemetry.io/otel v1.40.0
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0
|
||||||
go.opentelemetry.io/otel/metric v1.38.0
|
go.opentelemetry.io/otel/metric v1.40.0
|
||||||
go.opentelemetry.io/otel/sdk v1.38.0
|
go.opentelemetry.io/otel/sdk v1.40.0
|
||||||
go.opentelemetry.io/otel/trace v1.38.0
|
go.opentelemetry.io/otel/trace v1.40.0
|
||||||
go.yaml.in/yaml/v3 v3.0.4
|
go.yaml.in/yaml/v3 v3.0.4
|
||||||
golang.org/x/crypto v0.48.0
|
golang.org/x/crypto v0.48.0
|
||||||
golang.org/x/mod v0.33.0
|
golang.org/x/mod v0.33.0
|
||||||
golang.org/x/sync v0.19.0
|
golang.org/x/sync v0.19.0
|
||||||
golang.org/x/sys v0.41.0
|
golang.org/x/sys v0.42.0
|
||||||
golang.org/x/term v0.40.0
|
golang.org/x/term v0.41.0
|
||||||
golang.org/x/text v0.34.0
|
golang.org/x/text v0.34.0
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409
|
||||||
google.golang.org/grpc v1.78.0
|
google.golang.org/grpc v1.79.3
|
||||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
|
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
|
||||||
google.golang.org/protobuf v1.36.11
|
google.golang.org/protobuf v1.36.11
|
||||||
k8s.io/api v0.35.2
|
k8s.io/api v0.35.2
|
||||||
@@ -84,19 +84,19 @@ require (
|
|||||||
github.com/apparentlymart/go-cidr v1.0.1 // indirect
|
github.com/apparentlymart/go-cidr v1.0.1 // indirect
|
||||||
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
|
||||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2 v1.41.1 // indirect
|
github.com/aws/aws-sdk-go-v2 v1.41.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.19.7 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.12 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/signin v1.0.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.9 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.41.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 // indirect
|
||||||
github.com/aws/smithy-go v1.24.0 // indirect
|
github.com/aws/smithy-go v1.24.2 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/blang/semver v3.5.1+incompatible // indirect
|
github.com/blang/semver v3.5.1+incompatible // indirect
|
||||||
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
||||||
@@ -104,7 +104,7 @@ require (
|
|||||||
github.com/cloudflare/circl v1.6.3 // indirect
|
github.com/cloudflare/circl v1.6.3 // indirect
|
||||||
github.com/containerd/containerd/api v1.10.0 // indirect
|
github.com/containerd/containerd/api v1.10.0 // indirect
|
||||||
github.com/containerd/errdefs/pkg v0.3.0 // indirect
|
github.com/containerd/errdefs/pkg v0.3.0 // indirect
|
||||||
github.com/containerd/ttrpc v1.2.7 // indirect
|
github.com/containerd/ttrpc v1.2.8 // indirect
|
||||||
github.com/containerd/typeurl/v2 v2.2.3 // indirect
|
github.com/containerd/typeurl/v2 v2.2.3 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
|
||||||
github.com/cyberphone/json-canonicalization v0.0.0-20241213102144-19d51d7fe467 // indirect
|
github.com/cyberphone/json-canonicalization v0.0.0-20241213102144-19d51d7fe467 // indirect
|
||||||
@@ -119,27 +119,27 @@ require (
|
|||||||
github.com/go-ini/ini v1.67.0 // indirect
|
github.com/go-ini/ini v1.67.0 // indirect
|
||||||
github.com/go-logr/logr v1.4.3 // indirect
|
github.com/go-logr/logr v1.4.3 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-openapi/analysis v0.24.1 // indirect
|
github.com/go-openapi/analysis v0.24.3 // indirect
|
||||||
github.com/go-openapi/errors v0.22.6 // indirect
|
github.com/go-openapi/errors v0.22.7 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.22.4 // indirect
|
github.com/go-openapi/jsonpointer v0.22.5 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.21.4 // indirect
|
github.com/go-openapi/jsonreference v0.21.5 // indirect
|
||||||
github.com/go-openapi/loads v0.23.2 // indirect
|
github.com/go-openapi/loads v0.23.3 // indirect
|
||||||
github.com/go-openapi/runtime v0.29.2 // indirect
|
github.com/go-openapi/runtime v0.29.2 // indirect
|
||||||
github.com/go-openapi/spec v0.22.3 // indirect
|
github.com/go-openapi/spec v0.22.4 // indirect
|
||||||
github.com/go-openapi/strfmt v0.25.0 // indirect
|
github.com/go-openapi/strfmt v0.26.1 // indirect
|
||||||
github.com/go-openapi/swag v0.25.4 // indirect
|
github.com/go-openapi/swag v0.25.4 // indirect
|
||||||
github.com/go-openapi/swag/cmdutils v0.25.4 // indirect
|
github.com/go-openapi/swag/cmdutils v0.25.4 // indirect
|
||||||
github.com/go-openapi/swag/conv v0.25.4 // indirect
|
github.com/go-openapi/swag/conv v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/fileutils v0.25.4 // indirect
|
github.com/go-openapi/swag/fileutils v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/jsonname v0.25.4 // indirect
|
github.com/go-openapi/swag/jsonname v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/jsonutils v0.25.4 // indirect
|
github.com/go-openapi/swag/jsonutils v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/loading v0.25.4 // indirect
|
github.com/go-openapi/swag/loading v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/mangling v0.25.4 // indirect
|
github.com/go-openapi/swag/mangling v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/netutils v0.25.4 // indirect
|
github.com/go-openapi/swag/netutils v0.25.4 // indirect
|
||||||
github.com/go-openapi/swag/stringutils v0.25.4 // indirect
|
github.com/go-openapi/swag/stringutils v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/typeutils v0.25.4 // indirect
|
github.com/go-openapi/swag/typeutils v0.25.5 // indirect
|
||||||
github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
|
github.com/go-openapi/swag/yamlutils v0.25.5 // indirect
|
||||||
github.com/go-openapi/validate v0.25.1 // indirect
|
github.com/go-openapi/validate v0.25.2 // indirect
|
||||||
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
|
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
|
||||||
github.com/gobwas/glob v0.2.3 // indirect
|
github.com/gobwas/glob v0.2.3 // indirect
|
||||||
github.com/goccy/go-json v0.10.5 // indirect
|
github.com/goccy/go-json v0.10.5 // indirect
|
||||||
@@ -149,13 +149,13 @@ require (
|
|||||||
github.com/google/go-cmp v0.7.0 // indirect
|
github.com/google/go-cmp v0.7.0 // indirect
|
||||||
github.com/google/go-containerregistry v0.20.7 // indirect
|
github.com/google/go-containerregistry v0.20.7 // indirect
|
||||||
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
|
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
github.com/hiddeco/sshsig v0.2.0 // indirect
|
github.com/hiddeco/sshsig v0.2.0 // indirect
|
||||||
github.com/in-toto/attestation v1.1.2 // indirect
|
github.com/in-toto/attestation v1.1.2 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
github.com/klauspost/compress v1.18.4 // indirect
|
github.com/klauspost/compress v1.18.5 // indirect
|
||||||
github.com/lestrrat-go/blackmagic v1.0.4 // indirect
|
github.com/lestrrat-go/blackmagic v1.0.4 // indirect
|
||||||
github.com/lestrrat-go/dsig v1.0.0 // indirect
|
github.com/lestrrat-go/dsig v1.0.0 // indirect
|
||||||
github.com/lestrrat-go/dsig-secp256k1 v1.0.0 // indirect
|
github.com/lestrrat-go/dsig-secp256k1 v1.0.0 // indirect
|
||||||
@@ -169,7 +169,7 @@ require (
|
|||||||
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
||||||
github.com/moby/docker-image-spec v1.3.1 // indirect
|
github.com/moby/docker-image-spec v1.3.1 // indirect
|
||||||
github.com/moby/locker v1.0.1 // indirect
|
github.com/moby/locker v1.0.1 // indirect
|
||||||
github.com/moby/patternmatcher v0.6.0 // indirect
|
github.com/moby/patternmatcher v0.6.1 // indirect
|
||||||
github.com/moby/spdystream v0.5.0 // indirect
|
github.com/moby/spdystream v0.5.0 // indirect
|
||||||
github.com/moby/sys/sequential v0.6.0 // indirect
|
github.com/moby/sys/sequential v0.6.0 // indirect
|
||||||
github.com/moby/sys/signal v0.7.1 // indirect
|
github.com/moby/sys/signal v0.7.1 // indirect
|
||||||
@@ -180,7 +180,7 @@ require (
|
|||||||
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
|
||||||
github.com/oklog/ulid v1.3.1 // indirect
|
github.com/oklog/ulid/v2 v2.1.1 // indirect
|
||||||
github.com/package-url/packageurl-go v0.1.1 // indirect
|
github.com/package-url/packageurl-go v0.1.1 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||||
github.com/prometheus/client_golang v1.23.2 // indirect
|
github.com/prometheus/client_golang v1.23.2 // indirect
|
||||||
@@ -213,23 +213,22 @@ require (
|
|||||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
||||||
github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
|
github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
|
||||||
github.com/yashtewari/glob-intersection v0.2.0 // indirect
|
github.com/yashtewari/glob-intersection v0.2.0 // indirect
|
||||||
go.mongodb.org/mongo-driver v1.17.6 // indirect
|
|
||||||
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect
|
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.39.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect
|
go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.7.1 // indirect
|
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
|
||||||
go.yaml.in/yaml/v2 v2.4.3 // indirect
|
go.yaml.in/yaml/v2 v2.4.3 // indirect
|
||||||
golang.org/x/net v0.51.0 // indirect
|
golang.org/x/net v0.51.0 // indirect
|
||||||
golang.org/x/oauth2 v0.34.0 // indirect
|
golang.org/x/oauth2 v0.34.0 // indirect
|
||||||
golang.org/x/time v0.14.0 // indirect
|
golang.org/x/time v0.14.0 // indirect
|
||||||
golang.org/x/tools v0.41.0 // indirect
|
golang.org/x/tools v0.41.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
k8s.io/klog/v2 v2.130.1 // indirect
|
k8s.io/klog/v2 v2.130.1 // indirect
|
||||||
|
|||||||
@@ -64,36 +64,36 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3d
|
|||||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||||
github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE=
|
github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE=
|
||||||
github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.41.1 h1:ABlyEARCDLN034NhxlRUSZr4l71mh+T5KAeGh6cerhU=
|
github.com/aws/aws-sdk-go-v2 v1.41.4 h1:10f50G7WyU02T56ox1wWXq+zTX9I1zxG46HYuG1hH/k=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0=
|
github.com/aws/aws-sdk-go-v2 v1.41.4/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.32.7 h1:vxUyWGUwmkQ2g19n7JY/9YL8MfAIl7bTesIUykECXmY=
|
github.com/aws/aws-sdk-go-v2/config v1.32.12 h1:O3csC7HUGn2895eNrLytOJQdoL2xyJy0iYXhoZ1OmP0=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.32.7/go.mod h1:2/Qm5vKUU/r7Y+zUk/Ptt2MDAEKAfUtKc1+3U1Mo3oY=
|
github.com/aws/aws-sdk-go-v2/config v1.32.12/go.mod h1:96zTvoOFR4FURjI+/5wY1vc1ABceROO4lWgWJuxgy0g=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.19.7 h1:tHK47VqqtJxOymRrNtUXN5SP/zUTvZKeLx4tH6PGQc8=
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.12 h1:oqtA6v+y5fZg//tcTWahyN9PEn5eDU/Wpvc2+kJ4aY8=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.19.7/go.mod h1:qOZk8sPDrxhf+4Wf4oT2urYJrYt3RejHSzgAquYeppw=
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.12/go.mod h1:U3R1RtSHx6NB0DvEQFGyf/0sbrpJrluENHdPy1j/3TE=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17 h1:I0GyV8wiYrP8XpA70g1HBcQO1JlQxCMTW9npl5UbDHY=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20 h1:zOgq3uezl5nznfoK3ODuqbhVg1JzAGDUhXOsU0IDCAo=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17/go.mod h1:tyw7BOl5bBe/oqvoIeECFJjMdzXoa/dfVz3QQ5lgHGA=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.20/go.mod h1:z/MVwUARehy6GAg/yQ1GO2IMl0k++cu1ohP9zo887wE=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 h1:CNXO7mvgThFGqOFgbNAP2nol2qAWBOGfqR/7tQlvLmc=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20/go.mod h1:oydPDJKcfMhgfcgBUZaG+toBbwy8yPWubJXBVERtI4o=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 h1:tN6W/hg+pkM+tf9XDkWUbDEjGLb+raoBMFsTodcoYKw=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17/go.mod h1:EhG22vHRrvF8oXSTYStZhJc1aUgKtnJe+aOiFEV90cM=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20/go.mod h1:YJ898MhD067hSHA6xYCx5ts/jEd8BSOLtQDL3iZsvbc=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 h1:qYQ4pzQ2Oz6WpQ8T3HvGHnZydA72MnLuFK9tJwmrbHw=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6/go.mod h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 h1:RuNSMoozM8oXlgLG/n6WLaFGoea7/CddrCfIiSA+xdY=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 h1:2HvVAIq+YqgGotK6EkMf+KIEqTISmTYh5zLpYyeTo1Y=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17/go.mod h1:F2xxQ9TZz5gDWsclCtPQscGpP0VUOc8RqgFM3vDENmU=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20/go.mod h1:V4X406Y666khGa8ghKmphma/7C0DAtEQYhkq9z4vpbk=
|
||||||
github.com/aws/aws-sdk-go-v2/service/kms v1.49.1 h1:U0asSZ3ifpuIehDPkRI2rxHbmFUMplDA2VeR9Uogrmw=
|
github.com/aws/aws-sdk-go-v2/service/kms v1.49.1 h1:U0asSZ3ifpuIehDPkRI2rxHbmFUMplDA2VeR9Uogrmw=
|
||||||
github.com/aws/aws-sdk-go-v2/service/kms v1.49.1/go.mod h1:NZo9WJqQ0sxQ1Yqu1IwCHQFQunTms2MlVgejg16S1rY=
|
github.com/aws/aws-sdk-go-v2/service/kms v1.49.1/go.mod h1:NZo9WJqQ0sxQ1Yqu1IwCHQFQunTms2MlVgejg16S1rY=
|
||||||
github.com/aws/aws-sdk-go-v2/service/signin v1.0.5 h1:VrhDvQib/i0lxvr3zqlUwLwJP4fpmpyD9wYG1vfSu+Y=
|
github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 h1:0GFOLzEbOyZABS3PhYfBIx2rNBACYcKty+XGkTgw1ow=
|
||||||
github.com/aws/aws-sdk-go-v2/service/signin v1.0.5/go.mod h1:k029+U8SY30/3/ras4G/Fnv/b88N4mAfliNn08Dem4M=
|
github.com/aws/aws-sdk-go-v2/service/signin v1.0.8/go.mod h1:LXypKvk85AROkKhOG6/YEcHFPoX+prKTowKnVdcaIxE=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.9 h1:v6EiMvhEYBoHABfbGB4alOYmCIrcgyPPiBE1wZAEbqk=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 h1:kiIDLZ005EcKomYYITtfsjn7dtOwHDOFy7IbPXKek2o=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.30.9/go.mod h1:yifAsgBxgJWn3ggx70A3urX2AN49Y5sJTD1UQFlfqBw=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.13/go.mod h1:2h/xGEowcW/g38g06g3KpRWDlT+OTfxxI0o1KqayAB8=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13 h1:gd84Omyu9JLriJVCbGApcLzVR3XtmC4ZDPcAI6Ftvds=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 h1:jzKAXIlhZhJbnYwHbvUQZEB8KfgAEuG0dc08Bkda7NU=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13/go.mod h1:sTGThjphYE4Ohw8vJiRStAcu3rbjtXRsdNB0TvZ5wwo=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17/go.mod h1:Al9fFsXjv4KfbzQHGe6V4NZSZQXecFcvaIF4e70FoRA=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.41.6 h1:5fFjR/ToSOzB2OQ/XqWpZBmNvmP/pJ1jOWYlFDJTjRQ=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 h1:Cng+OOwCHmFljXIxpEVXAGMnBia8MSU6Ch5i9PgBkcU=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.41.6/go.mod h1:qgFDZQSD/Kys7nJnVqYlWKnh0SSdMjAi0uSwON4wgYQ=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.41.9/go.mod h1:LrlIndBDdjA/EeXeyNBle+gyCwTlizzW5ycgWnvIxkk=
|
||||||
github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk=
|
github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng=
|
||||||
github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
|
github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc=
|
||||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
||||||
@@ -112,14 +112,14 @@ github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUo
|
|||||||
github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4=
|
github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4=
|
||||||
github.com/compose-spec/compose-go/v2 v2.9.1 h1:8UwI+ujNU+9Ffkf/YgAm/qM9/eU7Jn8nHzWG721W4rs=
|
github.com/compose-spec/compose-go/v2 v2.9.1 h1:8UwI+ujNU+9Ffkf/YgAm/qM9/eU7Jn8nHzWG721W4rs=
|
||||||
github.com/compose-spec/compose-go/v2 v2.9.1/go.mod h1:Oky9AZGTRB4E+0VbTPZTUu4Kp+oEMMuwZXZtPPVT1iE=
|
github.com/compose-spec/compose-go/v2 v2.9.1/go.mod h1:Oky9AZGTRB4E+0VbTPZTUu4Kp+oEMMuwZXZtPPVT1iE=
|
||||||
github.com/containerd/cgroups/v3 v3.1.2 h1:OSosXMtkhI6Qove637tg1XgK4q+DhR0mX8Wi8EhrHa4=
|
github.com/containerd/cgroups/v3 v3.1.3 h1:eUNflyMddm18+yrDmZPn3jI7C5hJ9ahABE5q6dyLYXQ=
|
||||||
github.com/containerd/cgroups/v3 v3.1.2/go.mod h1:PKZ2AcWmSBsY/tJUVhtS/rluX0b1uq1GmPO1ElCmbOw=
|
github.com/containerd/cgroups/v3 v3.1.3/go.mod h1:PKZ2AcWmSBsY/tJUVhtS/rluX0b1uq1GmPO1ElCmbOw=
|
||||||
github.com/containerd/console v1.0.5 h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc=
|
github.com/containerd/console v1.0.5 h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc=
|
||||||
github.com/containerd/console v1.0.5/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
|
github.com/containerd/console v1.0.5/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
|
||||||
github.com/containerd/containerd/api v1.10.0 h1:5n0oHYVBwN4VhoX9fFykCV9dF1/BvAXeg2F8W6UYq1o=
|
github.com/containerd/containerd/api v1.10.0 h1:5n0oHYVBwN4VhoX9fFykCV9dF1/BvAXeg2F8W6UYq1o=
|
||||||
github.com/containerd/containerd/api v1.10.0/go.mod h1:NBm1OAk8ZL+LG8R0ceObGxT5hbUYj7CzTmR3xh0DlMM=
|
github.com/containerd/containerd/api v1.10.0/go.mod h1:NBm1OAk8ZL+LG8R0ceObGxT5hbUYj7CzTmR3xh0DlMM=
|
||||||
github.com/containerd/containerd/v2 v2.2.1 h1:TpyxcY4AL5A+07dxETevunVS5zxqzuq7ZqJXknM11yk=
|
github.com/containerd/containerd/v2 v2.2.2 h1:mjVQdtfryzT7lOqs5EYUFZm8ioPVjOpkSoG1GJPxEMY=
|
||||||
github.com/containerd/containerd/v2 v2.2.1/go.mod h1:NR70yW1iDxe84F2iFWbR9xfAN0N2F0NcjTi1OVth4nU=
|
github.com/containerd/containerd/v2 v2.2.2/go.mod h1:5Jhevmv6/2J+Iu/A2xXAdUIdI5Ah/hfyO7okJ4AFIdY=
|
||||||
github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4=
|
github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4=
|
||||||
github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
|
github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
|
||||||
github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
|
github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
|
||||||
@@ -130,8 +130,8 @@ github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY
|
|||||||
github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o=
|
github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o=
|
||||||
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
|
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
|
||||||
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
|
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
|
||||||
github.com/containerd/nydus-snapshotter v0.15.11 h1:YTdF4rsjFRsfyaIhnWVUSLz8FqJwOyRZ5FhvFjHh7Uc=
|
github.com/containerd/nydus-snapshotter v0.15.13 h1:z9yCiTPMxVBIZlHxOPinZXhly2MdcIqxk9VXPlHIOJY=
|
||||||
github.com/containerd/nydus-snapshotter v0.15.11/go.mod h1:EWRd/QJ0b6UKHAqYgiV5gHlqLC2qq5cQiSlXEdVovrA=
|
github.com/containerd/nydus-snapshotter v0.15.13/go.mod h1:t95dwCb4I0RE4n1iOk0sJCWosNoACA8daOXmU5A2VHI=
|
||||||
github.com/containerd/platforms v1.0.0-rc.2 h1:0SPgaNZPVWGEi4grZdV8VRYQn78y+nm6acgLGv/QzE4=
|
github.com/containerd/platforms v1.0.0-rc.2 h1:0SPgaNZPVWGEi4grZdV8VRYQn78y+nm6acgLGv/QzE4=
|
||||||
github.com/containerd/platforms v1.0.0-rc.2/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4=
|
github.com/containerd/platforms v1.0.0-rc.2/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4=
|
||||||
github.com/containerd/plugin v1.0.0 h1:c8Kf1TNl6+e2TtMHZt+39yAPDbouRH9WAToRjex483Y=
|
github.com/containerd/plugin v1.0.0 h1:c8Kf1TNl6+e2TtMHZt+39yAPDbouRH9WAToRjex483Y=
|
||||||
@@ -139,8 +139,8 @@ github.com/containerd/plugin v1.0.0/go.mod h1:hQfJe5nmWfImiqT1q8Si3jLv3ynMUIBB47
|
|||||||
github.com/containerd/stargz-snapshotter v0.18.2 h1:Ev/sxfQUjwzJQ9eqy3XzttcQ3osMIqkQgMYlcET+10M=
|
github.com/containerd/stargz-snapshotter v0.18.2 h1:Ev/sxfQUjwzJQ9eqy3XzttcQ3osMIqkQgMYlcET+10M=
|
||||||
github.com/containerd/stargz-snapshotter/estargz v0.18.2 h1:yXkZFYIzz3eoLwlTUZKz2iQ4MrckBxJjkmD16ynUTrw=
|
github.com/containerd/stargz-snapshotter/estargz v0.18.2 h1:yXkZFYIzz3eoLwlTUZKz2iQ4MrckBxJjkmD16ynUTrw=
|
||||||
github.com/containerd/stargz-snapshotter/estargz v0.18.2/go.mod h1:XyVU5tcJ3PRpkA9XS2T5us6Eg35yM0214Y+wvrZTBrY=
|
github.com/containerd/stargz-snapshotter/estargz v0.18.2/go.mod h1:XyVU5tcJ3PRpkA9XS2T5us6Eg35yM0214Y+wvrZTBrY=
|
||||||
github.com/containerd/ttrpc v1.2.7 h1:qIrroQvuOL9HQ1X6KHe2ohc7p+HP/0VE6XPU7elJRqQ=
|
github.com/containerd/ttrpc v1.2.8 h1:xbVu6D4qF2jihdh9rDVOKqUMiFBQk6YctTdo1zk087Y=
|
||||||
github.com/containerd/ttrpc v1.2.7/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o=
|
github.com/containerd/ttrpc v1.2.8/go.mod h1:wyZW2K79t4Hfcxl+GUvkZqRBzJlqFFvgEeeWXa42tyE=
|
||||||
github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
|
github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
|
||||||
github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
|
github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
|
||||||
github.com/coreos/go-oidc/v3 v3.17.0 h1:hWBGaQfbi0iVviX4ibC7bk8OKT5qNr4klBaCHVNvehc=
|
github.com/coreos/go-oidc/v3 v3.17.0 h1:hWBGaQfbi0iVviX4ibC7bk8OKT5qNr4klBaCHVNvehc=
|
||||||
@@ -177,8 +177,8 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr
|
|||||||
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
|
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
|
||||||
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
|
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
|
||||||
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
|
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
|
||||||
github.com/docker/cli v29.3.0+incompatible h1:z3iWveU7h19Pqx7alZES8j+IeFQZ1lhTwb2F+V9SVvk=
|
github.com/docker/cli v29.3.1+incompatible h1:M04FDj2TRehDacrosh7Vlkgc7AuQoWloQkf1PA5hmoI=
|
||||||
github.com/docker/cli v29.3.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
github.com/docker/cli v29.3.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||||
github.com/docker/cli-docs-tool v0.11.0 h1:7d8QARFb7QEobizqxmEM7fOteZEHwH/zWgHQtHZEcfE=
|
github.com/docker/cli-docs-tool v0.11.0 h1:7d8QARFb7QEobizqxmEM7fOteZEHwH/zWgHQtHZEcfE=
|
||||||
github.com/docker/cli-docs-tool v0.11.0/go.mod h1:ma8BKiisUo8D6W05XEYIh3oa1UbgrZhi1nowyKFJa8Q=
|
github.com/docker/cli-docs-tool v0.11.0/go.mod h1:ma8BKiisUo8D6W05XEYIh3oa1UbgrZhi1nowyKFJa8Q=
|
||||||
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
||||||
@@ -219,54 +219,54 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
|
|||||||
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-openapi/analysis v0.24.1 h1:Xp+7Yn/KOnVWYG8d+hPksOYnCYImE3TieBa7rBOesYM=
|
github.com/go-openapi/analysis v0.24.3 h1:a1hrvMr8X0Xt69KP5uVTu5jH62DscmDifrLzNglAayk=
|
||||||
github.com/go-openapi/analysis v0.24.1/go.mod h1:dU+qxX7QGU1rl7IYhBC8bIfmWQdX4Buoea4TGtxXY84=
|
github.com/go-openapi/analysis v0.24.3/go.mod h1:Nc+dWJ/FxZbhSow5Yh3ozg5CLJioB+XXT6MdLvJUsUw=
|
||||||
github.com/go-openapi/errors v0.22.6 h1:eDxcf89O8odEnohIXwEjY1IB4ph5vmbUsBMsFNwXWPo=
|
github.com/go-openapi/errors v0.22.7 h1:JLFBGC0Apwdzw3484MmBqspjPbwa2SHvpDm0u5aGhUA=
|
||||||
github.com/go-openapi/errors v0.22.6/go.mod h1:z9S8ASTUqx7+CP1Q8dD8ewGH/1JWFFLX/2PmAYNQLgk=
|
github.com/go-openapi/errors v0.22.7/go.mod h1://QW6SD9OsWtH6gHllUCddOXDL0tk0ZGNYHwsw4sW3w=
|
||||||
github.com/go-openapi/jsonpointer v0.22.4 h1:dZtK82WlNpVLDW2jlA1YCiVJFVqkED1MegOUy9kR5T4=
|
github.com/go-openapi/jsonpointer v0.22.5 h1:8on/0Yp4uTb9f4XvTrM2+1CPrV05QPZXu+rvu2o9jcA=
|
||||||
github.com/go-openapi/jsonpointer v0.22.4/go.mod h1:elX9+UgznpFhgBuaMQ7iu4lvvX1nvNsesQ3oxmYTw80=
|
github.com/go-openapi/jsonpointer v0.22.5/go.mod h1:gyUR3sCvGSWchA2sUBJGluYMbe1zazrYWIkWPjjMUY0=
|
||||||
github.com/go-openapi/jsonreference v0.21.4 h1:24qaE2y9bx/q3uRK/qN+TDwbok1NhbSmGjjySRCHtC8=
|
github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE=
|
||||||
github.com/go-openapi/jsonreference v0.21.4/go.mod h1:rIENPTjDbLpzQmQWCj5kKj3ZlmEh+EFVbz3RTUh30/4=
|
github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZLcfifd1Q+iKKOUxExw=
|
||||||
github.com/go-openapi/loads v0.23.2 h1:rJXAcP7g1+lWyBHC7iTY+WAF0rprtM+pm8Jxv1uQJp4=
|
github.com/go-openapi/loads v0.23.3 h1:g5Xap1JfwKkUnZdn+S0L3SzBDpcTIYzZ5Qaag0YDkKQ=
|
||||||
github.com/go-openapi/loads v0.23.2/go.mod h1:IEVw1GfRt/P2Pplkelxzj9BYFajiWOtY2nHZNj4UnWY=
|
github.com/go-openapi/loads v0.23.3/go.mod h1:NOH07zLajXo8y55hom0omlHWDVVvCwBM/S+csCK8LqA=
|
||||||
github.com/go-openapi/runtime v0.29.2 h1:UmwSGWNmWQqKm1c2MGgXVpC2FTGwPDQeUsBMufc5Yj0=
|
github.com/go-openapi/runtime v0.29.2 h1:UmwSGWNmWQqKm1c2MGgXVpC2FTGwPDQeUsBMufc5Yj0=
|
||||||
github.com/go-openapi/runtime v0.29.2/go.mod h1:biq5kJXRJKBJxTDJXAa00DOTa/anflQPhT0/wmjuy+0=
|
github.com/go-openapi/runtime v0.29.2/go.mod h1:biq5kJXRJKBJxTDJXAa00DOTa/anflQPhT0/wmjuy+0=
|
||||||
github.com/go-openapi/spec v0.22.3 h1:qRSmj6Smz2rEBxMnLRBMeBWxbbOvuOoElvSvObIgwQc=
|
github.com/go-openapi/spec v0.22.4 h1:4pxGjipMKu0FzFiu/DPwN3CTBRlVM2yLf/YTWorYfDQ=
|
||||||
github.com/go-openapi/spec v0.22.3/go.mod h1:iIImLODL2loCh3Vnox8TY2YWYJZjMAKYyLH2Mu8lOZs=
|
github.com/go-openapi/spec v0.22.4/go.mod h1:WQ6Ai0VPWMZgMT4XySjlRIE6GP1bGQOtEThn3gcWLtQ=
|
||||||
github.com/go-openapi/strfmt v0.25.0 h1:7R0RX7mbKLa9EYCTHRcCuIPcaqlyQiWNPTXwClK0saQ=
|
github.com/go-openapi/strfmt v0.26.1 h1:7zGCHji7zSYDC2tCXIusoxYQz/48jAf2q+sF6wXTG+c=
|
||||||
github.com/go-openapi/strfmt v0.25.0/go.mod h1:nNXct7OzbwrMY9+5tLX4I21pzcmE6ccMGXl3jFdPfn8=
|
github.com/go-openapi/strfmt v0.26.1/go.mod h1:Zslk5VZPOISLwmWTMBIS7oiVFem1o1EI6zULY8Uer7Y=
|
||||||
github.com/go-openapi/swag v0.25.4 h1:OyUPUFYDPDBMkqyxOTkqDYFnrhuhi9NR6QVUvIochMU=
|
github.com/go-openapi/swag v0.25.4 h1:OyUPUFYDPDBMkqyxOTkqDYFnrhuhi9NR6QVUvIochMU=
|
||||||
github.com/go-openapi/swag v0.25.4/go.mod h1:zNfJ9WZABGHCFg2RnY0S4IOkAcVTzJ6z2Bi+Q4i6qFQ=
|
github.com/go-openapi/swag v0.25.4/go.mod h1:zNfJ9WZABGHCFg2RnY0S4IOkAcVTzJ6z2Bi+Q4i6qFQ=
|
||||||
github.com/go-openapi/swag/cmdutils v0.25.4 h1:8rYhB5n6WawR192/BfUu2iVlxqVR9aRgGJP6WaBoW+4=
|
github.com/go-openapi/swag/cmdutils v0.25.4 h1:8rYhB5n6WawR192/BfUu2iVlxqVR9aRgGJP6WaBoW+4=
|
||||||
github.com/go-openapi/swag/cmdutils v0.25.4/go.mod h1:pdae/AFo6WxLl5L0rq87eRzVPm/XRHM3MoYgRMvG4A0=
|
github.com/go-openapi/swag/cmdutils v0.25.4/go.mod h1:pdae/AFo6WxLl5L0rq87eRzVPm/XRHM3MoYgRMvG4A0=
|
||||||
github.com/go-openapi/swag/conv v0.25.4 h1:/Dd7p0LZXczgUcC/Ikm1+YqVzkEeCc9LnOWjfkpkfe4=
|
github.com/go-openapi/swag/conv v0.25.5 h1:wAXBYEXJjoKwE5+vc9YHhpQOFj2JYBMF2DUi+tGu97g=
|
||||||
github.com/go-openapi/swag/conv v0.25.4/go.mod h1:3LXfie/lwoAv0NHoEuY1hjoFAYkvlqI/Bn5EQDD3PPU=
|
github.com/go-openapi/swag/conv v0.25.5/go.mod h1:CuJ1eWvh1c4ORKx7unQnFGyvBbNlRKbnRyAvDvzWA4k=
|
||||||
github.com/go-openapi/swag/fileutils v0.25.4 h1:2oI0XNW5y6UWZTC7vAxC8hmsK/tOkWXHJQH4lKjqw+Y=
|
github.com/go-openapi/swag/fileutils v0.25.5 h1:B6JTdOcs2c0dBIs9HnkyTW+5gC+8NIhVBUwERkFhMWk=
|
||||||
github.com/go-openapi/swag/fileutils v0.25.4/go.mod h1:cdOT/PKbwcysVQ9Tpr0q20lQKH7MGhOEb6EwmHOirUk=
|
github.com/go-openapi/swag/fileutils v0.25.5/go.mod h1:V3cT9UdMQIaH4WiTrUc9EPtVA4txS0TOmRURmhGF4kc=
|
||||||
github.com/go-openapi/swag/jsonname v0.25.4 h1:bZH0+MsS03MbnwBXYhuTttMOqk+5KcQ9869Vye1bNHI=
|
github.com/go-openapi/swag/jsonname v0.25.5 h1:8p150i44rv/Drip4vWI3kGi9+4W9TdI3US3uUYSFhSo=
|
||||||
github.com/go-openapi/swag/jsonname v0.25.4/go.mod h1:GPVEk9CWVhNvWhZgrnvRA6utbAltopbKwDu8mXNUMag=
|
github.com/go-openapi/swag/jsonname v0.25.5/go.mod h1:jNqqikyiAK56uS7n8sLkdaNY/uq6+D2m2LANat09pKU=
|
||||||
github.com/go-openapi/swag/jsonutils v0.25.4 h1:VSchfbGhD4UTf4vCdR2F4TLBdLwHyUDTd1/q4i+jGZA=
|
github.com/go-openapi/swag/jsonutils v0.25.5 h1:XUZF8awQr75MXeC+/iaw5usY/iM7nXPDwdG3Jbl9vYo=
|
||||||
github.com/go-openapi/swag/jsonutils v0.25.4/go.mod h1:7OYGXpvVFPn4PpaSdPHJBtF0iGnbEaTk8AvBkoWnaAY=
|
github.com/go-openapi/swag/jsonutils v0.25.5/go.mod h1:48FXUaz8YsDAA9s5AnaUvAmry1UcLcNVWUjY42XkrN4=
|
||||||
github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4 h1:IACsSvBhiNJwlDix7wq39SS2Fh7lUOCJRmx/4SN4sVo=
|
github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.5 h1:SX6sE4FrGb4sEnnxbFL/25yZBb5Hcg1inLeErd86Y1U=
|
||||||
github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4/go.mod h1:Mt0Ost9l3cUzVv4OEZG+WSeoHwjWLnarzMePNDAOBiM=
|
github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.5/go.mod h1:/2KvOTrKWjVA5Xli3DZWdMCZDzz3uV/T7bXwrKWPquo=
|
||||||
github.com/go-openapi/swag/loading v0.25.4 h1:jN4MvLj0X6yhCDduRsxDDw1aHe+ZWoLjW+9ZQWIKn2s=
|
github.com/go-openapi/swag/loading v0.25.5 h1:odQ/umlIZ1ZVRteI6ckSrvP6e2w9UTF5qgNdemJHjuU=
|
||||||
github.com/go-openapi/swag/loading v0.25.4/go.mod h1:rpUM1ZiyEP9+mNLIQUdMiD7dCETXvkkC30z53i+ftTE=
|
github.com/go-openapi/swag/loading v0.25.5/go.mod h1:I8A8RaaQ4DApxhPSWLNYWh9NvmX2YKMoB9nwvv6oW6g=
|
||||||
github.com/go-openapi/swag/mangling v0.25.4 h1:2b9kBJk9JvPgxr36V23FxJLdwBrpijI26Bx5JH4Hp48=
|
github.com/go-openapi/swag/mangling v0.25.5 h1:hyrnvbQRS7vKePQPHHDso+k6CGn5ZBs5232UqWZmJZw=
|
||||||
github.com/go-openapi/swag/mangling v0.25.4/go.mod h1:6dxwu6QyORHpIIApsdZgb6wBk/DPU15MdyYj/ikn0Hg=
|
github.com/go-openapi/swag/mangling v0.25.5/go.mod h1:6hadXM/o312N/h98RwByLg088U61TPGiltQn71Iw0NY=
|
||||||
github.com/go-openapi/swag/netutils v0.25.4 h1:Gqe6K71bGRb3ZQLusdI8p/y1KLgV4M/k+/HzVSqT8H0=
|
github.com/go-openapi/swag/netutils v0.25.4 h1:Gqe6K71bGRb3ZQLusdI8p/y1KLgV4M/k+/HzVSqT8H0=
|
||||||
github.com/go-openapi/swag/netutils v0.25.4/go.mod h1:m2W8dtdaoX7oj9rEttLyTeEFFEBvnAx9qHd5nJEBzYg=
|
github.com/go-openapi/swag/netutils v0.25.4/go.mod h1:m2W8dtdaoX7oj9rEttLyTeEFFEBvnAx9qHd5nJEBzYg=
|
||||||
github.com/go-openapi/swag/stringutils v0.25.4 h1:O6dU1Rd8bej4HPA3/CLPciNBBDwZj9HiEpdVsb8B5A8=
|
github.com/go-openapi/swag/stringutils v0.25.5 h1:NVkoDOA8YBgtAR/zvCx5rhJKtZF3IzXcDdwOsYzrB6M=
|
||||||
github.com/go-openapi/swag/stringutils v0.25.4/go.mod h1:GTsRvhJW5xM5gkgiFe0fV3PUlFm0dr8vki6/VSRaZK0=
|
github.com/go-openapi/swag/stringutils v0.25.5/go.mod h1:PKK8EZdu4QJq8iezt17HM8RXnLAzY7gW0O1KKarrZII=
|
||||||
github.com/go-openapi/swag/typeutils v0.25.4 h1:1/fbZOUN472NTc39zpa+YGHn3jzHWhv42wAJSN91wRw=
|
github.com/go-openapi/swag/typeutils v0.25.5 h1:EFJ+PCga2HfHGdo8s8VJXEVbeXRCYwzzr9u4rJk7L7E=
|
||||||
github.com/go-openapi/swag/typeutils v0.25.4/go.mod h1:Ou7g//Wx8tTLS9vG0UmzfCsjZjKhpjxayRKTHXf2pTE=
|
github.com/go-openapi/swag/typeutils v0.25.5/go.mod h1:itmFmScAYE1bSD8C4rS0W+0InZUBrB2xSPbWt6DLGuc=
|
||||||
github.com/go-openapi/swag/yamlutils v0.25.4 h1:6jdaeSItEUb7ioS9lFoCZ65Cne1/RZtPBZ9A56h92Sw=
|
github.com/go-openapi/swag/yamlutils v0.25.5 h1:kASCIS+oIeoc55j28T4o8KwlV2S4ZLPT6G0iq2SSbVQ=
|
||||||
github.com/go-openapi/swag/yamlutils v0.25.4/go.mod h1:MNzq1ulQu+yd8Kl7wPOut/YHAAU/H6hL91fF+E2RFwc=
|
github.com/go-openapi/swag/yamlutils v0.25.5/go.mod h1:Gek1/SjjfbYvM+Iq4QGwa/2lEXde9n2j4a3wI3pNuOQ=
|
||||||
github.com/go-openapi/testify/enable/yaml/v2 v2.0.2 h1:0+Y41Pz1NkbTHz8NngxTuAXxEodtNSI1WG1c/m5Akw4=
|
github.com/go-openapi/testify/enable/yaml/v2 v2.4.1 h1:NZOrZmIb6PTv5LTFxr5/mKV/FjbUzGE7E6gLz7vFoOQ=
|
||||||
github.com/go-openapi/testify/enable/yaml/v2 v2.0.2/go.mod h1:kme83333GCtJQHXQ8UKX3IBZu6z8T5Dvy5+CW3NLUUg=
|
github.com/go-openapi/testify/enable/yaml/v2 v2.4.1/go.mod h1:r7dwsujEHawapMsxA69i+XMGZrQ5tRauhLAjV/sxg3Q=
|
||||||
github.com/go-openapi/testify/v2 v2.0.2 h1:X999g3jeLcoY8qctY/c/Z8iBHTbwLz7R2WXd6Ub6wls=
|
github.com/go-openapi/testify/v2 v2.4.1 h1:zB34HDKj4tHwyUQHrUkpV0Q0iXQ6dUCOQtIqn8hE6Iw=
|
||||||
github.com/go-openapi/testify/v2 v2.0.2/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54=
|
github.com/go-openapi/testify/v2 v2.4.1/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54=
|
||||||
github.com/go-openapi/validate v0.25.1 h1:sSACUI6Jcnbo5IWqbYHgjibrhhmt3vR6lCzKZnmAgBw=
|
github.com/go-openapi/validate v0.25.2 h1:12NsfLAwGegqbGWr2CnvT65X/Q2USJipmJ9b7xDJZz0=
|
||||||
github.com/go-openapi/validate v0.25.1/go.mod h1:RMVyVFYte0gbSTaZ0N4KmTn6u/kClvAFp+mAVfS/DQc=
|
github.com/go-openapi/validate v0.25.2/go.mod h1:Pgl1LpPPGFnZ+ys4/hTlDiRYQdI1ocKypgE+8Q8BLfY=
|
||||||
github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
|
github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
|
||||||
github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
|
github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
|
||||||
github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
|
github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
|
||||||
@@ -322,8 +322,8 @@ github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5T
|
|||||||
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA=
|
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA=
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg=
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak=
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3/go.mod h1:zQrxl1YP88HQlA6i9c63DSVPFklWpGX4OWAc9bFuaH4=
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII=
|
||||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
||||||
@@ -378,8 +378,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
|
|||||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
|
github.com/klauspost/compress v1.18.5 h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE=
|
||||||
github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
|
github.com/klauspost/compress v1.18.5/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
@@ -418,8 +418,8 @@ github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4
|
|||||||
github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE=
|
github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE=
|
||||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
github.com/moby/buildkit v0.28.0 h1:rKulfRRSduHJPNpLTk481fHElqN9tps0VUx8YV/5zsA=
|
github.com/moby/buildkit v0.29.0-rc1 h1:pEL7RVtmBs2mdNey32sEGsClZ2jx0C7fzyITDCa9ZCU=
|
||||||
github.com/moby/buildkit v0.28.0/go.mod h1:RCuOcj/bVsCriBG8NeFzRxjiCFQKnKP7KOVlNTS18t4=
|
github.com/moby/buildkit v0.29.0-rc1/go.mod h1:N+QLSGxzV0p+GC/53SIdSs7ASUDQcdx9QSnyARzizIM=
|
||||||
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
|
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
|
||||||
github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
|
github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
|
||||||
github.com/moby/go-archive v0.2.0 h1:zg5QDUM2mi0JIM9fdQZWC7U8+2ZfixfTYoHL7rWUcP8=
|
github.com/moby/go-archive v0.2.0 h1:zg5QDUM2mi0JIM9fdQZWC7U8+2ZfixfTYoHL7rWUcP8=
|
||||||
@@ -430,10 +430,10 @@ github.com/moby/moby/api v1.54.0 h1:7kbUgyiKcoBhm0UrWbdrMs7RX8dnwzURKVbZGy2GnL0=
|
|||||||
github.com/moby/moby/api v1.54.0/go.mod h1:8mb+ReTlisw4pS6BRzCMts5M49W5M7bKt1cJy/YbAqc=
|
github.com/moby/moby/api v1.54.0/go.mod h1:8mb+ReTlisw4pS6BRzCMts5M49W5M7bKt1cJy/YbAqc=
|
||||||
github.com/moby/moby/client v0.3.0 h1:UUGL5okry+Aomj3WhGt9Aigl3ZOxZGqR7XPo+RLPlKs=
|
github.com/moby/moby/client v0.3.0 h1:UUGL5okry+Aomj3WhGt9Aigl3ZOxZGqR7XPo+RLPlKs=
|
||||||
github.com/moby/moby/client v0.3.0/go.mod h1:HJgFbJRvogDQjbM8fqc1MCEm4mIAGMLjXbgwoZp6jCQ=
|
github.com/moby/moby/client v0.3.0/go.mod h1:HJgFbJRvogDQjbM8fqc1MCEm4mIAGMLjXbgwoZp6jCQ=
|
||||||
github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk=
|
github.com/moby/patternmatcher v0.6.1 h1:qlhtafmr6kgMIJjKJMDmMWq7WLkKIo23hsrpR3x084U=
|
||||||
github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
|
github.com/moby/patternmatcher v0.6.1/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
|
||||||
github.com/moby/policy-helpers v0.0.0-20260211190020-824747bfdd3c h1:hRUo0Ir9PEaa0PQCgg8WvGku0sgmTo/NgnCzMb83iII=
|
github.com/moby/policy-helpers v0.0.0-20260324161837-b7c0b994300b h1:lvBBM2ACrsG5/O1G1caEwlh0XeqA89IQK3xq0Sh/5NI=
|
||||||
github.com/moby/policy-helpers v0.0.0-20260211190020-824747bfdd3c/go.mod h1:2P1OGoTVIrybI4M7yhpkDpqiwOnI3yR+HnNhEyo8ovs=
|
github.com/moby/policy-helpers v0.0.0-20260324161837-b7c0b994300b/go.mod h1:Cbc1brDwYl1K294MmZB+6WhQR9Tr24hfhgSGND4UlL0=
|
||||||
github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
|
github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
|
||||||
github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
|
github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
|
||||||
github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw=
|
github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw=
|
||||||
@@ -464,8 +464,8 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J
|
|||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
||||||
github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A=
|
github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A=
|
||||||
github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM=
|
github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM=
|
||||||
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
|
github.com/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s=
|
||||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ=
|
||||||
github.com/open-policy-agent/opa v1.10.1 h1:haIvxZSPky8HLjRrvQwWAjCPLg8JDFSZMbbG4yyUHgY=
|
github.com/open-policy-agent/opa v1.10.1 h1:haIvxZSPky8HLjRrvQwWAjCPLg8JDFSZMbbG4yyUHgY=
|
||||||
github.com/open-policy-agent/opa v1.10.1/go.mod h1:7uPI3iRpOalJ0BhK6s1JALWPU9HvaV1XeBSSMZnr/PM=
|
github.com/open-policy-agent/opa v1.10.1/go.mod h1:7uPI3iRpOalJ0BhK6s1JALWPU9HvaV1XeBSSMZnr/PM=
|
||||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||||
@@ -478,6 +478,7 @@ github.com/opencontainers/selinux v1.13.1 h1:A8nNeceYngH9Ow++M+VVEwJVpdFmrlxsN22
|
|||||||
github.com/opencontainers/selinux v1.13.1/go.mod h1:S10WXZ/osk2kWOYKy1x2f/eXF5ZHJoUs8UU/2caNRbg=
|
github.com/opencontainers/selinux v1.13.1/go.mod h1:S10WXZ/osk2kWOYKy1x2f/eXF5ZHJoUs8UU/2caNRbg=
|
||||||
github.com/package-url/packageurl-go v0.1.1 h1:KTRE0bK3sKbFKAk3yy63DpeskU7Cvs/x/Da5l+RtzyU=
|
github.com/package-url/packageurl-go v0.1.1 h1:KTRE0bK3sKbFKAk3yy63DpeskU7Cvs/x/Da5l+RtzyU=
|
||||||
github.com/package-url/packageurl-go v0.1.1/go.mod h1:uQd4a7Rh3ZsVg5j0lNyAfyxIeGde9yrlhjF78GzeW0c=
|
github.com/package-url/packageurl-go v0.1.1/go.mod h1:uQd4a7Rh3ZsVg5j0lNyAfyxIeGde9yrlhjF78GzeW0c=
|
||||||
|
github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
|
||||||
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
|
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
|
||||||
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
|
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
|
||||||
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
|
||||||
@@ -617,8 +618,6 @@ github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0
|
|||||||
github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U=
|
github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U=
|
||||||
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo=
|
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo=
|
||||||
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM=
|
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM=
|
||||||
go.mongodb.org/mongo-driver v1.17.6 h1:87JUG1wZfWsr6rIz3ZmpH90rL5tea7O3IHuSwHUpsss=
|
|
||||||
go.mongodb.org/mongo-driver v1.17.6/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
|
||||||
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||||
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
|
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
|
||||||
@@ -629,30 +628,30 @@ go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.
|
|||||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0/go.mod h1:rjbQTDEPQymPE0YnRQp9/NuPwwtL0sesz/fnqRW/v84=
|
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0/go.mod h1:rjbQTDEPQymPE0YnRQp9/NuPwwtL0sesz/fnqRW/v84=
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
|
||||||
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
|
go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms=
|
||||||
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
|
go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 h1:vl9obrcoWVKp/lwl8tRE33853I8Xru9HFbw/skNeLs8=
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.39.0 h1:cEf8jF6WbuGQWUVcqgyWtTR0kOOAWY1DYZ+UhvdmQPw=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0/go.mod h1:GAXRxmLJcVM3u22IjTg74zWBrRCKq8BnOqUVLodpcpw=
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.39.0/go.mod h1:k1lzV5n5U3HkGvTCJHraTAGJ7MqsgL1wrGwTj1Isfiw=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk=
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0 h1:nKP4Z2ejtHn3yShBb+2KawiXgpn8In5cT7aO2wXuOTE=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg=
|
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0/go.mod h1:NwjeBbNigsO4Aj9WgM0C+cKIrxsZUaRmZUO7A8I7u8o=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 h1:in9O8ESIOlwJAEGTkkf34DesGRAc/Pn8qJ7k3r/42LM=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0/go.mod h1:Rp0EXBm5tfnv0WL+ARyO/PHBEaEAT8UUHQ6AGJcSq6c=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40=
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE=
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE=
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
|
||||||
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
|
go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g=
|
||||||
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
|
go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc=
|
||||||
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
|
go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8=
|
||||||
go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
|
go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE=
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
|
go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw=
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
|
go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg=
|
||||||
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
|
go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw=
|
||||||
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
|
go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA=
|
||||||
go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
|
go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A=
|
||||||
go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
|
go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4=
|
||||||
go.step.sm/crypto v0.74.0 h1:/APBEv45yYR4qQFg47HA8w1nesIGcxh44pGyQNw6JRA=
|
go.step.sm/crypto v0.74.0 h1:/APBEv45yYR4qQFg47HA8w1nesIGcxh44pGyQNw6JRA=
|
||||||
go.step.sm/crypto v0.74.0/go.mod h1:UoXqCAJjjRgzPte0Llaqen7O9P7XjPmgjgTHQGkKCDk=
|
go.step.sm/crypto v0.74.0/go.mod h1:UoXqCAJjjRgzPte0Llaqen7O9P7XjPmgjgTHQGkKCDk=
|
||||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
@@ -694,10 +693,10 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
|
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
|
||||||
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||||
golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
|
golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
|
||||||
golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
|
golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
|
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
|
||||||
@@ -720,12 +719,12 @@ google.golang.org/api v0.260.0 h1:XbNi5E6bOVEj/uLXQRlt6TKuEzMD7zvW/6tNwltE4P4=
|
|||||||
google.golang.org/api v0.260.0/go.mod h1:Shj1j0Phr/9sloYrKomICzdYgsSDImpTxME8rGLaZ/o=
|
google.golang.org/api v0.260.0/go.mod h1:Shj1j0Phr/9sloYrKomICzdYgsSDImpTxME8rGLaZ/o=
|
||||||
google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217 h1:GvESR9BIyHUahIb0NcTum6itIWtdoglGX+rnGxm2934=
|
google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217 h1:GvESR9BIyHUahIb0NcTum6itIWtdoglGX+rnGxm2934=
|
||||||
google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:yJ2HH4EHEDTd3JiLmhds6NkJ17ITVYOdV3m3VKOnws0=
|
google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:yJ2HH4EHEDTd3JiLmhds6NkJ17ITVYOdV3m3VKOnws0=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
|
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 h1:merA0rdPeUV3YIIfHHcH4qBkiQAc1nfCKSI7lB4cV2M=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
|
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409/go.mod h1:fl8J1IvUjCilwZzQowmw2b7HQB2eAuYBabMXzWurF+I=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b h1:Mv8VFug0MP9e5vUxfBcE3vUkV6CImK3cMNMIDFjmzxU=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 h1:H86B94AW+VfJWDqFeEbBPhEtHzJwJfTbgE2lZa54ZAQ=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
|
||||||
google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
|
google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
|
||||||
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
|
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
|
||||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A=
|
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A=
|
||||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA=
|
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA=
|
||||||
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
|
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package aws
|
package aws
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.41.1"
|
const goModuleVersion = "1.41.4"
|
||||||
|
|||||||
+2
-2
@@ -3,7 +3,7 @@ package query
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
|
|
||||||
"github.com/aws/smithy-go/middleware"
|
"github.com/aws/smithy-go/middleware"
|
||||||
smithyhttp "github.com/aws/smithy-go/transport/http"
|
smithyhttp "github.com/aws/smithy-go/transport/http"
|
||||||
@@ -52,7 +52,7 @@ func (m *asGetRequest) HandleSerialize(
|
|||||||
delim = "&"
|
delim = "&"
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := ioutil.ReadAll(stream)
|
b, err := io.ReadAll(stream)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("unable to get request body %w", err)
|
return out, metadata, fmt.Errorf("unable to get request body %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
+11
@@ -300,6 +300,17 @@ func limitedRedirect(r *http.Request, via []*http.Request) error {
|
|||||||
switch resp.StatusCode {
|
switch resp.StatusCode {
|
||||||
case 307, 308:
|
case 307, 308:
|
||||||
// Only allow 307 and 308 redirects as they preserve the method.
|
// Only allow 307 and 308 redirects as they preserve the method.
|
||||||
|
|
||||||
|
// If redirecting to a different host, remove X-Amz-Security-Token header
|
||||||
|
// to prevent credentials from being sent to a different host, similar to
|
||||||
|
// how Authorization header is handled by the HTTP client.
|
||||||
|
if len(via) > 0 {
|
||||||
|
lastRequest := via[len(via)-1]
|
||||||
|
if lastRequest.URL.Host != r.URL.Host {
|
||||||
|
r.Header.Del("X-Amz-Security-Token")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+23
@@ -1,3 +1,26 @@
|
|||||||
|
# v1.32.12 (2026-03-13)
|
||||||
|
|
||||||
|
* **Bug Fix**: Replace usages of the old ioutil/ package throughout the SDK.
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.32.11 (2026-03-03)
|
||||||
|
|
||||||
|
* **Bug Fix**: Modernize non codegen files with go fix
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.32.10 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.32.9 (2026-02-18)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.32.8 (2026-02-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.32.7 (2026-01-09)
|
# v1.32.7 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+3
-3
@@ -103,7 +103,7 @@ var defaultAWSConfigResolvers = []awsConfigResolver{
|
|||||||
//
|
//
|
||||||
// General the Config type will use type assertion against the Provider interfaces
|
// General the Config type will use type assertion against the Provider interfaces
|
||||||
// to extract specific data from the Config.
|
// to extract specific data from the Config.
|
||||||
type Config interface{}
|
type Config any
|
||||||
|
|
||||||
// A loader is used to load external configuration data and returns it as
|
// A loader is used to load external configuration data and returns it as
|
||||||
// a generic Config type.
|
// a generic Config type.
|
||||||
@@ -170,8 +170,8 @@ func (cs configs) ResolveAWSConfig(ctx context.Context, resolvers []awsConfigRes
|
|||||||
|
|
||||||
// ResolveConfig calls the provide function passing slice of configuration sources.
|
// ResolveConfig calls the provide function passing slice of configuration sources.
|
||||||
// This implements the aws.ConfigResolver interface.
|
// This implements the aws.ConfigResolver interface.
|
||||||
func (cs configs) ResolveConfig(f func(configs []interface{}) error) error {
|
func (cs configs) ResolveConfig(f func(configs []any) error) error {
|
||||||
var cfgs []interface{}
|
var cfgs []any
|
||||||
for i := range cs {
|
for i := range cs {
|
||||||
cfgs = append(cfgs, cs[i])
|
cfgs = append(cfgs, cs[i])
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.32.7"
|
const goModuleVersion = "1.32.12"
|
||||||
|
|||||||
+1
-1
@@ -130,7 +130,7 @@ type IgnoreConfiguredEndpointsProvider interface {
|
|||||||
|
|
||||||
// GetIgnoreConfiguredEndpoints is used in knowing when to disable configured
|
// GetIgnoreConfiguredEndpoints is used in knowing when to disable configured
|
||||||
// endpoints feature.
|
// endpoints feature.
|
||||||
func GetIgnoreConfiguredEndpoints(ctx context.Context, configs []interface{}) (value bool, found bool, err error) {
|
func GetIgnoreConfiguredEndpoints(ctx context.Context, configs []any) (value bool, found bool, err error) {
|
||||||
for _, cfg := range configs {
|
for _, cfg := range configs {
|
||||||
if p, ok := cfg.(IgnoreConfiguredEndpointsProvider); ok {
|
if p, ok := cfg.(IgnoreConfiguredEndpointsProvider); ok {
|
||||||
value, found, err = p.GetIgnoreConfiguredEndpoints(ctx)
|
value, found, err = p.GetIgnoreConfiguredEndpoints(ctx)
|
||||||
|
|||||||
+5
-5
@@ -5,7 +5,7 @@ import (
|
|||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ import (
|
|||||||
// This should be used as the first resolver in the slice of resolvers when
|
// This should be used as the first resolver in the slice of resolvers when
|
||||||
// resolving external configuration.
|
// resolving external configuration.
|
||||||
func resolveDefaultAWSConfig(ctx context.Context, cfg *aws.Config, cfgs configs) error {
|
func resolveDefaultAWSConfig(ctx context.Context, cfg *aws.Config, cfgs configs) error {
|
||||||
var sources []interface{}
|
var sources []any
|
||||||
for _, s := range cfgs {
|
for _, s := range cfgs {
|
||||||
sources = append(sources, s)
|
sources = append(sources, s)
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ func resolveCustomCABundle(ctx context.Context, cfg *aws.Config, cfgs configs) e
|
|||||||
tr.TLSClientConfig.RootCAs = x509.NewCertPool()
|
tr.TLSClientConfig.RootCAs = x509.NewCertPool()
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := ioutil.ReadAll(pemCerts)
|
b, err := io.ReadAll(pemCerts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
appendErr = fmt.Errorf("failed to read custom CA bundle PEM file")
|
appendErr = fmt.Errorf("failed to read custom CA bundle PEM file")
|
||||||
}
|
}
|
||||||
@@ -106,9 +106,9 @@ func resolveRegion(ctx context.Context, cfg *aws.Config, configs configs) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
func resolveBaseEndpoint(ctx context.Context, cfg *aws.Config, configs configs) error {
|
func resolveBaseEndpoint(ctx context.Context, cfg *aws.Config, configs configs) error {
|
||||||
var downcastCfgSources []interface{}
|
var downcastCfgSources []any
|
||||||
for _, cs := range configs {
|
for _, cs := range configs {
|
||||||
downcastCfgSources = append(downcastCfgSources, interface{}(cs))
|
downcastCfgSources = append(downcastCfgSources, any(cs))
|
||||||
}
|
}
|
||||||
|
|
||||||
if val, found, err := GetIgnoreConfiguredEndpoints(ctx, downcastCfgSources); found && val && err == nil {
|
if val, found, err := GetIgnoreConfiguredEndpoints(ctx, downcastCfgSources); found && val && err == nil {
|
||||||
|
|||||||
+1
-2
@@ -3,7 +3,6 @@ package config
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
|
||||||
"net"
|
"net"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
@@ -346,7 +345,7 @@ func resolveHTTPCredProvider(ctx context.Context, cfg *aws.Config, url, authToke
|
|||||||
options.AuthorizationTokenProvider = endpointcreds.TokenProviderFunc(func() (string, error) {
|
options.AuthorizationTokenProvider = endpointcreds.TokenProviderFunc(func() (string, error) {
|
||||||
var contents []byte
|
var contents []byte
|
||||||
var err error
|
var err error
|
||||||
if contents, err = ioutil.ReadFile(authFilePath); err != nil {
|
if contents, err = os.ReadFile(authFilePath); err != nil {
|
||||||
return "", fmt.Errorf("failed to read authorization token from %v: %v", authFilePath, err)
|
return "", fmt.Errorf("failed to read authorization token from %v: %v", authFilePath, err)
|
||||||
}
|
}
|
||||||
return string(contents), nil
|
return string(contents), nil
|
||||||
|
|||||||
+1
-2
@@ -6,7 +6,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -502,7 +501,7 @@ func (c SharedConfig) getCustomCABundle(context.Context) (io.Reader, bool, error
|
|||||||
return nil, false, nil
|
return nil, false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := ioutil.ReadFile(c.CustomCABundle)
|
b, err := os.ReadFile(c.CustomCABundle)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
|
|||||||
+22
@@ -1,3 +1,25 @@
|
|||||||
|
# v1.19.12 (2026-03-13)
|
||||||
|
|
||||||
|
* **Bug Fix**: Replace usages of the old ioutil/ package throughout the SDK.
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.19.11 (2026-03-03)
|
||||||
|
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.19.10 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.19.9 (2026-02-18)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.19.8 (2026-02-17)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.19.7 (2026-01-09)
|
# v1.19.7 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package credentials
|
package credentials
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.19.7"
|
const goModuleVersion = "1.19.12"
|
||||||
|
|||||||
+1
-2
@@ -5,7 +5,6 @@ import (
|
|||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -145,7 +144,7 @@ func getTokenFieldRFC3339(v interface{}, value **rfc3339) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func loadCachedToken(filename string) (token, error) {
|
func loadCachedToken(filename string) (token, error) {
|
||||||
fileBytes, err := ioutil.ReadFile(filename)
|
fileBytes, err := os.ReadFile(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return token{}, fmt.Errorf("failed to read cached SSO token file, %w", err)
|
return token{}, fmt.Errorf("failed to read cached SSO token file, %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
Vendored
+2
-2
@@ -3,7 +3,7 @@ package stscreds
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@@ -80,7 +80,7 @@ type IdentityTokenFile string
|
|||||||
|
|
||||||
// GetIdentityToken retrieves the JWT token from the file and returns the contents as a []byte
|
// GetIdentityToken retrieves the JWT token from the file and returns the contents as a []byte
|
||||||
func (j IdentityTokenFile) GetIdentityToken() ([]byte, error) {
|
func (j IdentityTokenFile) GetIdentityToken() ([]byte, error) {
|
||||||
b, err := ioutil.ReadFile(string(j))
|
b, err := os.ReadFile(string(j))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("unable to read file at %s: %v", string(j), err)
|
return nil, fmt.Errorf("unable to read file at %s: %v", string(j), err)
|
||||||
}
|
}
|
||||||
|
|||||||
+15
@@ -1,3 +1,18 @@
|
|||||||
|
# v1.18.20 (2026-03-13)
|
||||||
|
|
||||||
|
* **Bug Fix**: Replace usages of the old ioutil/ package throughout the SDK.
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.18.19 (2026-03-03)
|
||||||
|
|
||||||
|
* **Bug Fix**: Modernize non codegen files with go fix
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.18.18 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.18.17 (2026-01-09)
|
# v1.18.17 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+2
-2
@@ -226,10 +226,10 @@ func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) invokeOperation(
|
func (c *Client) invokeOperation(
|
||||||
ctx context.Context, opID string, params interface{}, optFns []func(*Options),
|
ctx context.Context, opID string, params any, optFns []func(*Options),
|
||||||
stackFns ...func(*middleware.Stack, Options) error,
|
stackFns ...func(*middleware.Stack, Options) error,
|
||||||
) (
|
) (
|
||||||
result interface{}, metadata middleware.Metadata, err error,
|
result any, metadata middleware.Metadata, err error,
|
||||||
) {
|
) {
|
||||||
stack := middleware.NewStack(opID, smithyhttp.NewStackRequest)
|
stack := middleware.NewStack(opID, smithyhttp.NewStackRequest)
|
||||||
options := c.options.Copy()
|
options := c.options.Copy()
|
||||||
|
|||||||
+2
-2
@@ -61,7 +61,7 @@ func addGetDynamicDataMiddleware(stack *middleware.Stack, options Options) error
|
|||||||
buildGetDynamicDataOutput)
|
buildGetDynamicDataOutput)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetDynamicDataPath(params interface{}) (string, error) {
|
func buildGetDynamicDataPath(params any) (string, error) {
|
||||||
p, ok := params.(*GetDynamicDataInput)
|
p, ok := params.(*GetDynamicDataInput)
|
||||||
if !ok {
|
if !ok {
|
||||||
return "", fmt.Errorf("unknown parameter type %T", params)
|
return "", fmt.Errorf("unknown parameter type %T", params)
|
||||||
@@ -70,7 +70,7 @@ func buildGetDynamicDataPath(params interface{}) (string, error) {
|
|||||||
return appendURIPath(getDynamicDataPath, p.Path), nil
|
return appendURIPath(getDynamicDataPath, p.Path), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetDynamicDataOutput(resp *smithyhttp.Response) (interface{}, error) {
|
func buildGetDynamicDataOutput(resp *smithyhttp.Response) (any, error) {
|
||||||
return &GetDynamicDataOutput{
|
return &GetDynamicDataOutput{
|
||||||
Content: resp.Body,
|
Content: resp.Body,
|
||||||
}, nil
|
}, nil
|
||||||
|
|||||||
+2
-2
@@ -59,11 +59,11 @@ func addGetIAMInfoMiddleware(stack *middleware.Stack, options Options) error {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetIAMInfoPath(params interface{}) (string, error) {
|
func buildGetIAMInfoPath(params any) (string, error) {
|
||||||
return getIAMInfoPath, nil
|
return getIAMInfoPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetIAMInfoOutput(resp *smithyhttp.Response) (v interface{}, err error) {
|
func buildGetIAMInfoOutput(resp *smithyhttp.Response) (v any, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
closeErr := resp.Body.Close()
|
closeErr := resp.Body.Close()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
Generated
Vendored
+2
-2
@@ -60,11 +60,11 @@ func addGetInstanceIdentityDocumentMiddleware(stack *middleware.Stack, options O
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetInstanceIdentityDocumentPath(params interface{}) (string, error) {
|
func buildGetInstanceIdentityDocumentPath(params any) (string, error) {
|
||||||
return getInstanceIdentityDocumentPath, nil
|
return getInstanceIdentityDocumentPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetInstanceIdentityDocumentOutput(resp *smithyhttp.Response) (v interface{}, err error) {
|
func buildGetInstanceIdentityDocumentOutput(resp *smithyhttp.Response) (v any, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
closeErr := resp.Body.Close()
|
closeErr := resp.Body.Close()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
+2
-2
@@ -61,7 +61,7 @@ func addGetMetadataMiddleware(stack *middleware.Stack, options Options) error {
|
|||||||
buildGetMetadataOutput)
|
buildGetMetadataOutput)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetMetadataPath(params interface{}) (string, error) {
|
func buildGetMetadataPath(params any) (string, error) {
|
||||||
p, ok := params.(*GetMetadataInput)
|
p, ok := params.(*GetMetadataInput)
|
||||||
if !ok {
|
if !ok {
|
||||||
return "", fmt.Errorf("unknown parameter type %T", params)
|
return "", fmt.Errorf("unknown parameter type %T", params)
|
||||||
@@ -70,7 +70,7 @@ func buildGetMetadataPath(params interface{}) (string, error) {
|
|||||||
return appendURIPath(getMetadataPath, p.Path), nil
|
return appendURIPath(getMetadataPath, p.Path), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetMetadataOutput(resp *smithyhttp.Response) (interface{}, error) {
|
func buildGetMetadataOutput(resp *smithyhttp.Response) (any, error) {
|
||||||
return &GetMetadataOutput{
|
return &GetMetadataOutput{
|
||||||
Content: resp.Body,
|
Content: resp.Body,
|
||||||
}, nil
|
}, nil
|
||||||
|
|||||||
+1
-1
@@ -51,7 +51,7 @@ func addGetRegionMiddleware(stack *middleware.Stack, options Options) error {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetRegionOutput(resp *smithyhttp.Response) (interface{}, error) {
|
func buildGetRegionOutput(resp *smithyhttp.Response) (any, error) {
|
||||||
out, err := buildGetInstanceIdentityDocumentOutput(resp)
|
out, err := buildGetInstanceIdentityDocumentOutput(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
+2
-2
@@ -64,11 +64,11 @@ func addGetTokenMiddleware(stack *middleware.Stack, options Options) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetTokenPath(interface{}) (string, error) {
|
func buildGetTokenPath(any) (string, error) {
|
||||||
return getTokenPath, nil
|
return getTokenPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetTokenOutput(resp *smithyhttp.Response) (v interface{}, err error) {
|
func buildGetTokenOutput(resp *smithyhttp.Response) (v any, err error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
closeErr := resp.Body.Close()
|
closeErr := resp.Body.Close()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
+2
-2
@@ -50,11 +50,11 @@ func addGetUserDataMiddleware(stack *middleware.Stack, options Options) error {
|
|||||||
buildGetUserDataOutput)
|
buildGetUserDataOutput)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetUserDataPath(params interface{}) (string, error) {
|
func buildGetUserDataPath(params any) (string, error) {
|
||||||
return getUserDataPath, nil
|
return getUserDataPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildGetUserDataOutput(resp *smithyhttp.Response) (interface{}, error) {
|
func buildGetUserDataOutput(resp *smithyhttp.Response) (any, error) {
|
||||||
return &GetUserDataOutput{
|
return &GetUserDataOutput{
|
||||||
Content: resp.Body,
|
Content: resp.Body,
|
||||||
}, nil
|
}, nil
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package imds
|
package imds
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.18.17"
|
const goModuleVersion = "1.18.20"
|
||||||
|
|||||||
+9
-9
@@ -4,7 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/url"
|
"net/url"
|
||||||
"path"
|
"path"
|
||||||
"time"
|
"time"
|
||||||
@@ -18,8 +18,8 @@ import (
|
|||||||
func addAPIRequestMiddleware(stack *middleware.Stack,
|
func addAPIRequestMiddleware(stack *middleware.Stack,
|
||||||
options Options,
|
options Options,
|
||||||
operation string,
|
operation string,
|
||||||
getPath func(interface{}) (string, error),
|
getPath func(any) (string, error),
|
||||||
getOutput func(*smithyhttp.Response) (interface{}, error),
|
getOutput func(*smithyhttp.Response) (any, error),
|
||||||
) (err error) {
|
) (err error) {
|
||||||
err = addRequestMiddleware(stack, options, "GET", operation, getPath, getOutput)
|
err = addRequestMiddleware(stack, options, "GET", operation, getPath, getOutput)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -46,8 +46,8 @@ func addRequestMiddleware(stack *middleware.Stack,
|
|||||||
options Options,
|
options Options,
|
||||||
method string,
|
method string,
|
||||||
operation string,
|
operation string,
|
||||||
getPath func(interface{}) (string, error),
|
getPath func(any) (string, error),
|
||||||
getOutput func(*smithyhttp.Response) (interface{}, error),
|
getOutput func(*smithyhttp.Response) (any, error),
|
||||||
) (err error) {
|
) (err error) {
|
||||||
err = awsmiddleware.AddSDKAgentKey(awsmiddleware.FeatureMetadata, "ec2-imds")(stack)
|
err = awsmiddleware.AddSDKAgentKey(awsmiddleware.FeatureMetadata, "ec2-imds")(stack)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -120,7 +120,7 @@ func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type serializeRequest struct {
|
type serializeRequest struct {
|
||||||
GetPath func(interface{}) (string, error)
|
GetPath func(any) (string, error)
|
||||||
Method string
|
Method string
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ func (m *serializeRequest) HandleSerialize(
|
|||||||
}
|
}
|
||||||
|
|
||||||
type deserializeResponse struct {
|
type deserializeResponse struct {
|
||||||
GetOutput func(*smithyhttp.Response) (interface{}, error)
|
GetOutput func(*smithyhttp.Response) (any, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*deserializeResponse) ID() string {
|
func (*deserializeResponse) ID() string {
|
||||||
@@ -176,11 +176,11 @@ func (m *deserializeResponse) HandleDeserialize(
|
|||||||
|
|
||||||
// read the full body so that any operation timeouts cleanup will not race
|
// read the full body so that any operation timeouts cleanup will not race
|
||||||
// the body being read.
|
// the body being read.
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
body, err := io.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return out, metadata, fmt.Errorf("read response body failed, %w", err)
|
return out, metadata, fmt.Errorf("read response body failed, %w", err)
|
||||||
}
|
}
|
||||||
resp.Body = ioutil.NopCloser(bytes.NewReader(body))
|
resp.Body = io.NopCloser(bytes.NewReader(body))
|
||||||
|
|
||||||
// Anything that's not 200 |< 300 is error
|
// Anything that's not 200 |< 300 is error
|
||||||
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
|
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
|
||||||
|
|||||||
+14
@@ -1,3 +1,17 @@
|
|||||||
|
# v1.4.20 (2026-03-13)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.4.19 (2026-03-03)
|
||||||
|
|
||||||
|
* **Bug Fix**: Modernize non codegen files with go fix
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.4.18 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.4.17 (2026-01-09)
|
# v1.4.17 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+3
-3
@@ -14,7 +14,7 @@ type EnableEndpointDiscoveryProvider interface {
|
|||||||
// ResolveEnableEndpointDiscovery extracts the first instance of a EnableEndpointDiscoveryProvider from the config slice.
|
// ResolveEnableEndpointDiscovery extracts the first instance of a EnableEndpointDiscoveryProvider from the config slice.
|
||||||
// Additionally returns a aws.EndpointDiscoveryEnableState to indicate if the value was found in provided configs,
|
// Additionally returns a aws.EndpointDiscoveryEnableState to indicate if the value was found in provided configs,
|
||||||
// and error if one is encountered.
|
// and error if one is encountered.
|
||||||
func ResolveEnableEndpointDiscovery(ctx context.Context, configs []interface{}) (value aws.EndpointDiscoveryEnableState, found bool, err error) {
|
func ResolveEnableEndpointDiscovery(ctx context.Context, configs []any) (value aws.EndpointDiscoveryEnableState, found bool, err error) {
|
||||||
for _, cfg := range configs {
|
for _, cfg := range configs {
|
||||||
if p, ok := cfg.(EnableEndpointDiscoveryProvider); ok {
|
if p, ok := cfg.(EnableEndpointDiscoveryProvider); ok {
|
||||||
value, found, err = p.GetEnableEndpointDiscovery(ctx)
|
value, found, err = p.GetEnableEndpointDiscovery(ctx)
|
||||||
@@ -33,7 +33,7 @@ type UseDualStackEndpointProvider interface {
|
|||||||
|
|
||||||
// ResolveUseDualStackEndpoint extracts the first instance of a UseDualStackEndpoint from the config slice.
|
// ResolveUseDualStackEndpoint extracts the first instance of a UseDualStackEndpoint from the config slice.
|
||||||
// Additionally returns a boolean to indicate if the value was found in provided configs, and error if one is encountered.
|
// Additionally returns a boolean to indicate if the value was found in provided configs, and error if one is encountered.
|
||||||
func ResolveUseDualStackEndpoint(ctx context.Context, configs []interface{}) (value aws.DualStackEndpointState, found bool, err error) {
|
func ResolveUseDualStackEndpoint(ctx context.Context, configs []any) (value aws.DualStackEndpointState, found bool, err error) {
|
||||||
for _, cfg := range configs {
|
for _, cfg := range configs {
|
||||||
if p, ok := cfg.(UseDualStackEndpointProvider); ok {
|
if p, ok := cfg.(UseDualStackEndpointProvider); ok {
|
||||||
value, found, err = p.GetUseDualStackEndpoint(ctx)
|
value, found, err = p.GetUseDualStackEndpoint(ctx)
|
||||||
@@ -52,7 +52,7 @@ type UseFIPSEndpointProvider interface {
|
|||||||
|
|
||||||
// ResolveUseFIPSEndpoint extracts the first instance of a UseFIPSEndpointProvider from the config slice.
|
// ResolveUseFIPSEndpoint extracts the first instance of a UseFIPSEndpointProvider from the config slice.
|
||||||
// Additionally, returns a boolean to indicate if the value was found in provided configs, and error if one is encountered.
|
// Additionally, returns a boolean to indicate if the value was found in provided configs, and error if one is encountered.
|
||||||
func ResolveUseFIPSEndpoint(ctx context.Context, configs []interface{}) (value aws.FIPSEndpointState, found bool, err error) {
|
func ResolveUseFIPSEndpoint(ctx context.Context, configs []any) (value aws.FIPSEndpointState, found bool, err error) {
|
||||||
for _, cfg := range configs {
|
for _, cfg := range configs {
|
||||||
if p, ok := cfg.(UseFIPSEndpointProvider); ok {
|
if p, ok := cfg.(UseFIPSEndpointProvider); ok {
|
||||||
value, found, err = p.GetUseFIPSEndpoint(ctx)
|
value, found, err = p.GetUseFIPSEndpoint(ctx)
|
||||||
|
|||||||
+2
-2
@@ -26,7 +26,7 @@ type IgnoreConfiguredEndpointsProvider interface {
|
|||||||
// Currently duplicated from github.com/aws/aws-sdk-go-v2/config because
|
// Currently duplicated from github.com/aws/aws-sdk-go-v2/config because
|
||||||
// service packages cannot import github.com/aws/aws-sdk-go-v2/config
|
// service packages cannot import github.com/aws/aws-sdk-go-v2/config
|
||||||
// due to result import cycle error.
|
// due to result import cycle error.
|
||||||
func GetIgnoreConfiguredEndpoints(ctx context.Context, configs []interface{}) (value bool, found bool, err error) {
|
func GetIgnoreConfiguredEndpoints(ctx context.Context, configs []any) (value bool, found bool, err error) {
|
||||||
for _, cfg := range configs {
|
for _, cfg := range configs {
|
||||||
if p, ok := cfg.(IgnoreConfiguredEndpointsProvider); ok {
|
if p, ok := cfg.(IgnoreConfiguredEndpointsProvider); ok {
|
||||||
value, found, err = p.GetIgnoreConfiguredEndpoints(ctx)
|
value, found, err = p.GetIgnoreConfiguredEndpoints(ctx)
|
||||||
@@ -40,7 +40,7 @@ func GetIgnoreConfiguredEndpoints(ctx context.Context, configs []interface{}) (v
|
|||||||
|
|
||||||
// ResolveServiceBaseEndpoint is used to retrieve service endpoints from configured sources
|
// ResolveServiceBaseEndpoint is used to retrieve service endpoints from configured sources
|
||||||
// while allowing for configured endpoints to be disabled
|
// while allowing for configured endpoints to be disabled
|
||||||
func ResolveServiceBaseEndpoint(ctx context.Context, sdkID string, configs []interface{}) (value string, found bool, err error) {
|
func ResolveServiceBaseEndpoint(ctx context.Context, sdkID string, configs []any) (value string, found bool, err error) {
|
||||||
if val, found, _ := GetIgnoreConfiguredEndpoints(ctx, configs); found && val {
|
if val, found, _ := GetIgnoreConfiguredEndpoints(ctx, configs); found && val {
|
||||||
return "", false, nil
|
return "", false, nil
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package configsources
|
package configsources
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.4.17"
|
const goModuleVersion = "1.4.20"
|
||||||
|
|||||||
Generated
Vendored
+1
-1
@@ -152,7 +152,7 @@
|
|||||||
"regionRegex" : "^eusc\\-(de)\\-\\w+\\-\\d+$",
|
"regionRegex" : "^eusc\\-(de)\\-\\w+\\-\\d+$",
|
||||||
"regions" : {
|
"regions" : {
|
||||||
"eusc-de-east-1" : {
|
"eusc-de-east-1" : {
|
||||||
"description" : "EU (Germany)"
|
"description" : "AWS European Sovereign Cloud (Germany)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
+14
@@ -1,3 +1,17 @@
|
|||||||
|
# v2.7.20 (2026-03-13)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v2.7.19 (2026-03-03)
|
||||||
|
|
||||||
|
* **Bug Fix**: Modernize non codegen files with go fix
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v2.7.18 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v2.7.17 (2026-01-09)
|
# v2.7.17 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+3
-3
@@ -101,7 +101,7 @@ func (ps Partitions) ResolveEndpoint(region string, opts Options) (aws.Endpoint,
|
|||||||
region = opts.ResolvedRegion
|
region = opts.ResolvedRegion
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < len(ps); i++ {
|
for i := range ps {
|
||||||
if !ps[i].canResolveEndpoint(region, opts) {
|
if !ps[i].canResolveEndpoint(region, opts) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -290,8 +290,8 @@ func getByPriority(s []string, p []string, def string) string {
|
|||||||
return def
|
return def
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < len(p); i++ {
|
for i := range p {
|
||||||
for j := 0; j < len(s); j++ {
|
for j := range s {
|
||||||
if s[j] == p[i] {
|
if s[j] == p[i] {
|
||||||
return s[j]
|
return s[j]
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package endpoints
|
package endpoints
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "2.7.17"
|
const goModuleVersion = "2.7.20"
|
||||||
|
|||||||
+9
@@ -1,3 +1,12 @@
|
|||||||
|
# v1.8.6 (2026-03-13)
|
||||||
|
|
||||||
|
* **Bug Fix**: Replace usages of the old ioutil/ package throughout the SDK.
|
||||||
|
|
||||||
|
# v1.8.5 (2026-03-03)
|
||||||
|
|
||||||
|
* **Bug Fix**: Modernize non codegen files with go fix
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
|
||||||
# v1.8.4 (2025-10-16)
|
# v1.8.4 (2025-10-16)
|
||||||
|
|
||||||
* **Dependency Update**: Bump minimum Go version to 1.23.
|
* **Dependency Update**: Bump minimum Go version to 1.23.
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package ini
|
package ini
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.8.4"
|
const goModuleVersion = "1.8.6"
|
||||||
|
|||||||
Generated
Vendored
+12
@@ -1,3 +1,15 @@
|
|||||||
|
# v1.13.7 (2026-03-13)
|
||||||
|
|
||||||
|
* **Bug Fix**: Replace usages of the old ioutil/ package throughout the SDK.
|
||||||
|
|
||||||
|
# v1.13.6 (2026-03-03)
|
||||||
|
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
|
||||||
|
# v1.13.5 (2026-02-23)
|
||||||
|
|
||||||
|
* No change notes available for this release.
|
||||||
|
|
||||||
# v1.13.4 (2025-12-02)
|
# v1.13.4 (2025-12-02)
|
||||||
|
|
||||||
* **Dependency Update**: Upgrade to smithy-go v1.24.0. Notably this version of the library reduces the allocation footprint of the middleware system. We observe a ~10% reduction in allocations per SDK call with this change.
|
* **Dependency Update**: Upgrade to smithy-go v1.24.0. Notably this version of the library reduces the allocation footprint of the middleware system. We observe a ~10% reduction in allocations per SDK call with this change.
|
||||||
|
|||||||
Generated
Vendored
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package acceptencoding
|
package acceptencoding
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.13.4"
|
const goModuleVersion = "1.13.7"
|
||||||
|
|||||||
+14
@@ -1,3 +1,17 @@
|
|||||||
|
# v1.13.20 (2026-03-13)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.13.19 (2026-03-03)
|
||||||
|
|
||||||
|
* **Bug Fix**: Modernize non codegen files with go fix
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.13.18 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.13.17 (2026-01-09)
|
# v1.13.17 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
Generated
Vendored
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package presignedurl
|
package presignedurl
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.13.17"
|
const goModuleVersion = "1.13.20"
|
||||||
|
|||||||
+6
-6
@@ -14,26 +14,26 @@ import (
|
|||||||
// presigned URL.
|
// presigned URL.
|
||||||
type URLPresigner interface {
|
type URLPresigner interface {
|
||||||
// PresignURL presigns a URL.
|
// PresignURL presigns a URL.
|
||||||
PresignURL(ctx context.Context, srcRegion string, params interface{}) (*v4.PresignedHTTPRequest, error)
|
PresignURL(ctx context.Context, srcRegion string, params any) (*v4.PresignedHTTPRequest, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParameterAccessor provides an collection of accessor to for retrieving and
|
// ParameterAccessor provides an collection of accessor to for retrieving and
|
||||||
// setting the values needed to PresignedURL generation
|
// setting the values needed to PresignedURL generation
|
||||||
type ParameterAccessor struct {
|
type ParameterAccessor struct {
|
||||||
// GetPresignedURL accessor points to a function that retrieves a presigned url if present
|
// GetPresignedURL accessor points to a function that retrieves a presigned url if present
|
||||||
GetPresignedURL func(interface{}) (string, bool, error)
|
GetPresignedURL func(any) (string, bool, error)
|
||||||
|
|
||||||
// GetSourceRegion accessor points to a function that retrieves source region for presigned url
|
// GetSourceRegion accessor points to a function that retrieves source region for presigned url
|
||||||
GetSourceRegion func(interface{}) (string, bool, error)
|
GetSourceRegion func(any) (string, bool, error)
|
||||||
|
|
||||||
// CopyInput accessor points to a function that takes in an input, and returns a copy.
|
// CopyInput accessor points to a function that takes in an input, and returns a copy.
|
||||||
CopyInput func(interface{}) (interface{}, error)
|
CopyInput func(any) (any, error)
|
||||||
|
|
||||||
// SetDestinationRegion accessor points to a function that sets destination region on api input struct
|
// SetDestinationRegion accessor points to a function that sets destination region on api input struct
|
||||||
SetDestinationRegion func(interface{}, string) error
|
SetDestinationRegion func(any, string) error
|
||||||
|
|
||||||
// SetPresignedURL accessor points to a function that sets presigned url on api input struct
|
// SetPresignedURL accessor points to a function that sets presigned url on api input struct
|
||||||
SetPresignedURL func(interface{}, string) error
|
SetPresignedURL func(any, string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// Options provides the set of options needed by the presigned URL middleware.
|
// Options provides the set of options needed by the presigned URL middleware.
|
||||||
|
|||||||
+13
@@ -1,3 +1,16 @@
|
|||||||
|
# v1.0.8 (2026-03-13)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.0.7 (2026-03-03)
|
||||||
|
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.0.6 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.0.5 (2026-01-09)
|
# v1.0.5 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+1
-2
@@ -19,7 +19,6 @@
|
|||||||
"internal/endpoints/endpoints.go",
|
"internal/endpoints/endpoints.go",
|
||||||
"internal/endpoints/endpoints_test.go",
|
"internal/endpoints/endpoints_test.go",
|
||||||
"options.go",
|
"options.go",
|
||||||
"protocol_test.go",
|
|
||||||
"serializers.go",
|
"serializers.go",
|
||||||
"snapshot_test.go",
|
"snapshot_test.go",
|
||||||
"sra_operation_order_test.go",
|
"sra_operation_order_test.go",
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
"types/types.go",
|
"types/types.go",
|
||||||
"validators.go"
|
"validators.go"
|
||||||
],
|
],
|
||||||
"go": "1.23",
|
"go": "1.24",
|
||||||
"module": "github.com/aws/aws-sdk-go-v2/service/signin",
|
"module": "github.com/aws/aws-sdk-go-v2/service/signin",
|
||||||
"unstable": false
|
"unstable": false
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package signin
|
package signin
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.0.5"
|
const goModuleVersion = "1.0.8"
|
||||||
|
|||||||
+1
-2
@@ -58,8 +58,7 @@ type Options struct {
|
|||||||
// the client option BaseEndpoint instead.
|
// the client option BaseEndpoint instead.
|
||||||
EndpointResolver EndpointResolver
|
EndpointResolver EndpointResolver
|
||||||
|
|
||||||
// Resolves the endpoint used for a particular service operation. This should be
|
// Resolves the endpoint used for a particular service operation.
|
||||||
// used over the deprecated EndpointResolver.
|
|
||||||
EndpointResolverV2 EndpointResolverV2
|
EndpointResolverV2 EndpointResolverV2
|
||||||
|
|
||||||
// Signature Version 4 (SigV4) Signer
|
// Signature Version 4 (SigV4) Signer
|
||||||
|
|||||||
+17
@@ -1,3 +1,20 @@
|
|||||||
|
# v1.30.13 (2026-03-13)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.30.12 (2026-03-03)
|
||||||
|
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.30.11 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.30.10 (2026-02-18)
|
||||||
|
|
||||||
|
* No change notes available for this release.
|
||||||
|
|
||||||
# v1.30.9 (2026-01-09)
|
# v1.30.9 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+1
-2
@@ -22,7 +22,6 @@
|
|||||||
"internal/endpoints/endpoints.go",
|
"internal/endpoints/endpoints.go",
|
||||||
"internal/endpoints/endpoints_test.go",
|
"internal/endpoints/endpoints_test.go",
|
||||||
"options.go",
|
"options.go",
|
||||||
"protocol_test.go",
|
|
||||||
"serializers.go",
|
"serializers.go",
|
||||||
"snapshot_test.go",
|
"snapshot_test.go",
|
||||||
"sra_operation_order_test.go",
|
"sra_operation_order_test.go",
|
||||||
@@ -30,7 +29,7 @@
|
|||||||
"types/types.go",
|
"types/types.go",
|
||||||
"validators.go"
|
"validators.go"
|
||||||
],
|
],
|
||||||
"go": "1.23",
|
"go": "1.24",
|
||||||
"module": "github.com/aws/aws-sdk-go-v2/service/sso",
|
"module": "github.com/aws/aws-sdk-go-v2/service/sso",
|
||||||
"unstable": false
|
"unstable": false
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package sso
|
package sso
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.30.9"
|
const goModuleVersion = "1.30.13"
|
||||||
|
|||||||
+3
@@ -240,6 +240,9 @@ var defaultPartitions = endpoints.Partitions{
|
|||||||
Region: "ap-southeast-5",
|
Region: "ap-southeast-5",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
endpoints.EndpointKey{
|
||||||
|
Region: "ap-southeast-6",
|
||||||
|
}: endpoints.Endpoint{},
|
||||||
endpoints.EndpointKey{
|
endpoints.EndpointKey{
|
||||||
Region: "ap-southeast-7",
|
Region: "ap-southeast-7",
|
||||||
}: endpoints.Endpoint{},
|
}: endpoints.Endpoint{},
|
||||||
|
|||||||
+1
-2
@@ -58,8 +58,7 @@ type Options struct {
|
|||||||
// the client option BaseEndpoint instead.
|
// the client option BaseEndpoint instead.
|
||||||
EndpointResolver EndpointResolver
|
EndpointResolver EndpointResolver
|
||||||
|
|
||||||
// Resolves the endpoint used for a particular service operation. This should be
|
// Resolves the endpoint used for a particular service operation.
|
||||||
// used over the deprecated EndpointResolver.
|
|
||||||
EndpointResolverV2 EndpointResolverV2
|
EndpointResolverV2 EndpointResolverV2
|
||||||
|
|
||||||
// Signature Version 4 (SigV4) Signer
|
// Signature Version 4 (SigV4) Signer
|
||||||
|
|||||||
+17
@@ -1,3 +1,20 @@
|
|||||||
|
# v1.35.17 (2026-03-13)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.35.16 (2026-03-03)
|
||||||
|
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.35.15 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.35.14 (2026-02-17)
|
||||||
|
|
||||||
|
* No change notes available for this release.
|
||||||
|
|
||||||
# v1.35.13 (2026-01-09)
|
# v1.35.13 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+1
-2
@@ -22,7 +22,6 @@
|
|||||||
"internal/endpoints/endpoints.go",
|
"internal/endpoints/endpoints.go",
|
||||||
"internal/endpoints/endpoints_test.go",
|
"internal/endpoints/endpoints_test.go",
|
||||||
"options.go",
|
"options.go",
|
||||||
"protocol_test.go",
|
|
||||||
"serializers.go",
|
"serializers.go",
|
||||||
"snapshot_test.go",
|
"snapshot_test.go",
|
||||||
"sra_operation_order_test.go",
|
"sra_operation_order_test.go",
|
||||||
@@ -31,7 +30,7 @@
|
|||||||
"types/types.go",
|
"types/types.go",
|
||||||
"validators.go"
|
"validators.go"
|
||||||
],
|
],
|
||||||
"go": "1.23",
|
"go": "1.24",
|
||||||
"module": "github.com/aws/aws-sdk-go-v2/service/ssooidc",
|
"module": "github.com/aws/aws-sdk-go-v2/service/ssooidc",
|
||||||
"unstable": false
|
"unstable": false
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package ssooidc
|
package ssooidc
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.35.13"
|
const goModuleVersion = "1.35.17"
|
||||||
|
|||||||
Generated
Vendored
+3
@@ -240,6 +240,9 @@ var defaultPartitions = endpoints.Partitions{
|
|||||||
Region: "ap-southeast-5",
|
Region: "ap-southeast-5",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
endpoints.EndpointKey{
|
||||||
|
Region: "ap-southeast-6",
|
||||||
|
}: endpoints.Endpoint{},
|
||||||
endpoints.EndpointKey{
|
endpoints.EndpointKey{
|
||||||
Region: "ap-southeast-7",
|
Region: "ap-southeast-7",
|
||||||
}: endpoints.Endpoint{},
|
}: endpoints.Endpoint{},
|
||||||
|
|||||||
+1
-2
@@ -58,8 +58,7 @@ type Options struct {
|
|||||||
// the client option BaseEndpoint instead.
|
// the client option BaseEndpoint instead.
|
||||||
EndpointResolver EndpointResolver
|
EndpointResolver EndpointResolver
|
||||||
|
|
||||||
// Resolves the endpoint used for a particular service operation. This should be
|
// Resolves the endpoint used for a particular service operation.
|
||||||
// used over the deprecated EndpointResolver.
|
|
||||||
EndpointResolverV2 EndpointResolverV2
|
EndpointResolverV2 EndpointResolverV2
|
||||||
|
|
||||||
// Signature Version 4 (SigV4) Signer
|
// Signature Version 4 (SigV4) Signer
|
||||||
|
|||||||
+13
@@ -1,3 +1,16 @@
|
|||||||
|
# v1.41.9 (2026-03-13)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.41.8 (2026-03-03)
|
||||||
|
|
||||||
|
* **Dependency Update**: Bump minimum Go version to 1.24
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.41.7 (2026-02-23)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.41.6 (2026-01-09)
|
# v1.41.6 (2026-01-09)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|||||||
+1
-2
@@ -31,7 +31,6 @@
|
|||||||
"internal/endpoints/endpoints.go",
|
"internal/endpoints/endpoints.go",
|
||||||
"internal/endpoints/endpoints_test.go",
|
"internal/endpoints/endpoints_test.go",
|
||||||
"options.go",
|
"options.go",
|
||||||
"protocol_test.go",
|
|
||||||
"serializers.go",
|
"serializers.go",
|
||||||
"snapshot_test.go",
|
"snapshot_test.go",
|
||||||
"sra_operation_order_test.go",
|
"sra_operation_order_test.go",
|
||||||
@@ -39,7 +38,7 @@
|
|||||||
"types/types.go",
|
"types/types.go",
|
||||||
"validators.go"
|
"validators.go"
|
||||||
],
|
],
|
||||||
"go": "1.23",
|
"go": "1.24",
|
||||||
"module": "github.com/aws/aws-sdk-go-v2/service/sts",
|
"module": "github.com/aws/aws-sdk-go-v2/service/sts",
|
||||||
"unstable": false
|
"unstable": false
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package sts
|
package sts
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.41.6"
|
const goModuleVersion = "1.41.9"
|
||||||
|
|||||||
+1
-2
@@ -58,8 +58,7 @@ type Options struct {
|
|||||||
// the client option BaseEndpoint instead.
|
// the client option BaseEndpoint instead.
|
||||||
EndpointResolver EndpointResolver
|
EndpointResolver EndpointResolver
|
||||||
|
|
||||||
// Resolves the endpoint used for a particular service operation. This should be
|
// Resolves the endpoint used for a particular service operation.
|
||||||
// used over the deprecated EndpointResolver.
|
|
||||||
EndpointResolverV2 EndpointResolverV2
|
EndpointResolverV2 EndpointResolverV2
|
||||||
|
|
||||||
// Signature Version 4 (SigV4) Signer
|
// Signature Version 4 (SigV4) Signer
|
||||||
|
|||||||
+14
@@ -1,3 +1,17 @@
|
|||||||
|
# Release (2026-02-27)
|
||||||
|
|
||||||
|
## General Highlights
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# Release (2026-02-20)
|
||||||
|
|
||||||
|
## General Highlights
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/smithy-go`: v1.24.1
|
||||||
|
* **Feature**: Add new middleware functions to get event stream output from middleware
|
||||||
|
|
||||||
# Release (2025-12-01)
|
# Release (2025-12-01)
|
||||||
|
|
||||||
## General Highlights
|
## General Highlights
|
||||||
|
|||||||
+2
-2
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
[Smithy](https://smithy.io/) code generators for Go and the accompanying smithy-go runtime.
|
[Smithy](https://smithy.io/) code generators for Go and the accompanying smithy-go runtime.
|
||||||
|
|
||||||
The smithy-go runtime requires a minimum version of Go 1.23.
|
The smithy-go runtime requires a minimum version of Go 1.24.
|
||||||
|
|
||||||
**WARNING: All interfaces are subject to change.**
|
**WARNING: All interfaces are subject to change.**
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ example created from `smithy init`:
|
|||||||
"service": "example.weather#Weather",
|
"service": "example.weather#Weather",
|
||||||
"module": "github.com/example/weather",
|
"module": "github.com/example/weather",
|
||||||
"generateGoMod": true,
|
"generateGoMod": true,
|
||||||
"goDirective": "1.23"
|
"goDirective": "1.24"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
package smithy
|
package smithy
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.24.0"
|
const goModuleVersion = "1.24.2"
|
||||||
|
|||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
package middleware
|
||||||
|
|
||||||
|
type eventStreamOutputKey struct{}
|
||||||
|
|
||||||
|
func AddEventStreamOutputToMetadata(metadata *Metadata, output any) {
|
||||||
|
metadata.Set(eventStreamOutputKey{}, output)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetEventStreamOutputToMetadata[T any](metadata *Metadata) (*T, bool) {
|
||||||
|
val := metadata.Get(eventStreamOutputKey{})
|
||||||
|
// not found
|
||||||
|
if val == nil {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
// wrong type
|
||||||
|
res, ok := val.(*T)
|
||||||
|
if !ok {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
return res, true
|
||||||
|
}
|
||||||
+1
-1
@@ -24,7 +24,7 @@ var (
|
|||||||
Package = "github.com/containerd/containerd/v2"
|
Package = "github.com/containerd/containerd/v2"
|
||||||
|
|
||||||
// Version holds the complete version number. Filled in at linking time.
|
// Version holds the complete version number. Filled in at linking time.
|
||||||
Version = "2.2.1+unknown"
|
Version = "2.2.2+unknown"
|
||||||
|
|
||||||
// Revision is filled with the VCS (e.g. git) revision being used to build
|
// Revision is filled with the VCS (e.g. git) revision being used to build
|
||||||
// the program at linking time.
|
// the program at linking time.
|
||||||
|
|||||||
+51
-47
@@ -1,52 +1,56 @@
|
|||||||
|
version: "2"
|
||||||
linters:
|
linters:
|
||||||
enable:
|
enable:
|
||||||
- staticcheck
|
|
||||||
- unconvert
|
|
||||||
- gofmt
|
|
||||||
- goimports
|
|
||||||
- revive
|
|
||||||
- ineffassign
|
|
||||||
- vet
|
|
||||||
- unused
|
|
||||||
- misspell
|
- misspell
|
||||||
|
- revive
|
||||||
|
- unconvert
|
||||||
disable:
|
disable:
|
||||||
- errcheck
|
- errcheck
|
||||||
|
settings:
|
||||||
linters-settings:
|
revive:
|
||||||
revive:
|
rules:
|
||||||
ignore-generated-headers: true
|
- name: blank-imports
|
||||||
rules:
|
- name: context-as-argument
|
||||||
- name: blank-imports
|
- name: context-keys-type
|
||||||
- name: context-as-argument
|
- name: dot-imports
|
||||||
- name: context-keys-type
|
- name: error-return
|
||||||
- name: dot-imports
|
- name: error-strings
|
||||||
- name: error-return
|
- name: error-naming
|
||||||
- name: error-strings
|
- name: exported
|
||||||
- name: error-naming
|
- name: if-return
|
||||||
- name: exported
|
- name: increment-decrement
|
||||||
- name: if-return
|
- name: var-naming
|
||||||
- name: increment-decrement
|
arguments:
|
||||||
- name: var-naming
|
- - UID
|
||||||
arguments: [["UID", "GID"], []]
|
- GID
|
||||||
- name: var-declaration
|
- []
|
||||||
- name: package-comments
|
- name: var-declaration
|
||||||
- name: range
|
- name: package-comments
|
||||||
- name: receiver-naming
|
- name: range
|
||||||
- name: time-naming
|
- name: receiver-naming
|
||||||
- name: unexported-return
|
- name: time-naming
|
||||||
- name: indent-error-flow
|
- name: unexported-return
|
||||||
- name: errorf
|
- name: indent-error-flow
|
||||||
- name: empty-block
|
- name: errorf
|
||||||
- name: superfluous-else
|
- name: empty-block
|
||||||
- name: unused-parameter
|
- name: superfluous-else
|
||||||
- name: unreachable-code
|
- name: unused-parameter
|
||||||
- name: redefines-builtin-id
|
- name: unreachable-code
|
||||||
|
- name: redefines-builtin-id
|
||||||
issues:
|
exclusions:
|
||||||
include:
|
generated: lax
|
||||||
- EXC0002
|
presets:
|
||||||
|
- comments
|
||||||
run:
|
- common-false-positives
|
||||||
timeout: 8m
|
- legacy
|
||||||
skip-dirs:
|
- std-error-handling
|
||||||
- example
|
paths:
|
||||||
|
- example
|
||||||
|
formatters:
|
||||||
|
enable:
|
||||||
|
- gofmt
|
||||||
|
- goimports
|
||||||
|
exclusions:
|
||||||
|
generated: lax
|
||||||
|
paths:
|
||||||
|
- example
|
||||||
|
|||||||
+5
-4
@@ -268,7 +268,8 @@ func (cs *clientStream) RecvMsg(m interface{}) error {
|
|||||||
case msg = <-cs.s.recv:
|
case msg = <-cs.s.recv:
|
||||||
}
|
}
|
||||||
|
|
||||||
if msg.header.Type == messageTypeResponse {
|
switch msg.header.Type {
|
||||||
|
case messageTypeResponse:
|
||||||
resp := &Response{}
|
resp := &Response{}
|
||||||
err := proto.Unmarshal(msg.payload[:msg.header.Length], resp)
|
err := proto.Unmarshal(msg.payload[:msg.header.Length], resp)
|
||||||
// return the payload buffer for reuse
|
// return the payload buffer for reuse
|
||||||
@@ -289,7 +290,7 @@ func (cs *clientStream) RecvMsg(m interface{}) error {
|
|||||||
cs.remoteClosed = true
|
cs.remoteClosed = true
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
} else if msg.header.Type == messageTypeData {
|
case messageTypeData:
|
||||||
if !cs.desc.StreamingServer {
|
if !cs.desc.StreamingServer {
|
||||||
cs.c.deleteStream(cs.s)
|
cs.c.deleteStream(cs.s)
|
||||||
cs.remoteClosed = true
|
cs.remoteClosed = true
|
||||||
@@ -310,9 +311,9 @@ func (cs *clientStream) RecvMsg(m interface{}) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("unexpected %q message received: %w", msg.header.Type, ErrProtocol)
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Errorf("unexpected %q message received: %w", msg.header.Type, ErrProtocol)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close closes the ttrpc connection and underlying connection
|
// Close closes the ttrpc connection and underlying connection
|
||||||
|
|||||||
+4
-3
@@ -113,9 +113,7 @@ func (s *Server) Serve(ctx context.Context, l net.Listener) error {
|
|||||||
backoff *= 2
|
backoff *= 2
|
||||||
}
|
}
|
||||||
|
|
||||||
if max := time.Second; backoff > max {
|
backoff = min(time.Second, backoff)
|
||||||
backoff = max
|
|
||||||
}
|
|
||||||
|
|
||||||
sleep := time.Duration(rand.Int63n(int64(backoff)))
|
sleep := time.Duration(rand.Int63n(int64(backoff)))
|
||||||
log.G(ctx).WithError(err).Errorf("ttrpc: failed accept; backoff %v", sleep)
|
log.G(ctx).WithError(err).Errorf("ttrpc: failed accept; backoff %v", sleep)
|
||||||
@@ -415,6 +413,7 @@ func (c *serverConn) run(sctx context.Context) {
|
|||||||
if !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, "StreamID is no longer active")) {
|
if !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, "StreamID is no longer active")) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
sh := i.(*streamHandler)
|
sh := i.(*streamHandler)
|
||||||
if mh.Flags&flagNoData != flagNoData {
|
if mh.Flags&flagNoData != flagNoData {
|
||||||
@@ -428,6 +427,7 @@ func (c *serverConn) run(sctx context.Context) {
|
|||||||
if !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, "data handling error: %v", err)) {
|
if !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, "data handling error: %v", err)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -437,6 +437,7 @@ func (c *serverConn) run(sctx context.Context) {
|
|||||||
if !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, "data close message cannot include data")) {
|
if !sendStatus(mh.StreamID, status.Newf(codes.InvalidArgument, "data close message cannot include data")) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if mh.Type == messageTypeRequest {
|
} else if mh.Type == messageTypeRequest {
|
||||||
|
|||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
# Unix-style newlines with a newline ending every file
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
# Set default charset
|
||||||
|
[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]
|
||||||
|
charset = utf-8
|
||||||
|
|
||||||
|
# Tab indentation (no size specified)
|
||||||
|
[*.go]
|
||||||
|
indent_style = tab
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
# Matches the exact files either package.json or .travis.yml
|
||||||
|
[{package.json,.travis.yml}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
+4
-3
@@ -1,5 +1,6 @@
|
|||||||
secrets.yml
|
*.out
|
||||||
coverage.out
|
|
||||||
coverage.txt
|
|
||||||
*.cov
|
*.cov
|
||||||
.idea
|
.idea
|
||||||
|
.env
|
||||||
|
.mcp.json
|
||||||
|
.claude/
|
||||||
|
|||||||
+14
-19
@@ -2,34 +2,19 @@ version: "2"
|
|||||||
linters:
|
linters:
|
||||||
default: all
|
default: all
|
||||||
disable:
|
disable:
|
||||||
- cyclop
|
|
||||||
- depguard
|
- depguard
|
||||||
- errchkjson
|
|
||||||
- errorlint
|
|
||||||
- exhaustruct
|
|
||||||
- forcetypeassert
|
|
||||||
- funlen
|
- funlen
|
||||||
- gochecknoglobals
|
|
||||||
- gochecknoinits
|
|
||||||
- gocognit
|
|
||||||
- godot
|
|
||||||
- godox
|
- godox
|
||||||
- gosmopolitan
|
- gomoddirectives
|
||||||
- inamedparam
|
- exhaustruct
|
||||||
- intrange
|
|
||||||
- ireturn
|
|
||||||
- lll
|
|
||||||
- musttag
|
|
||||||
- nestif
|
|
||||||
- nlreturn
|
- nlreturn
|
||||||
- noinlineerr
|
|
||||||
- nonamedreturns
|
- nonamedreturns
|
||||||
|
- noinlineerr
|
||||||
- paralleltest
|
- paralleltest
|
||||||
- recvcheck
|
- recvcheck
|
||||||
- testpackage
|
- testpackage
|
||||||
- thelper
|
- thelper
|
||||||
- tparallel
|
- tparallel
|
||||||
- unparam
|
|
||||||
- varnamelen
|
- varnamelen
|
||||||
- whitespace
|
- whitespace
|
||||||
- wrapcheck
|
- wrapcheck
|
||||||
@@ -41,8 +26,17 @@ linters:
|
|||||||
goconst:
|
goconst:
|
||||||
min-len: 2
|
min-len: 2
|
||||||
min-occurrences: 3
|
min-occurrences: 3
|
||||||
|
cyclop:
|
||||||
|
max-complexity: 25
|
||||||
gocyclo:
|
gocyclo:
|
||||||
min-complexity: 45
|
min-complexity: 25
|
||||||
|
gocognit:
|
||||||
|
min-complexity: 35
|
||||||
|
exhaustive:
|
||||||
|
default-signifies-exhaustive: true
|
||||||
|
default-case-required: true
|
||||||
|
lll:
|
||||||
|
line-length: 180
|
||||||
exclusions:
|
exclusions:
|
||||||
generated: lax
|
generated: lax
|
||||||
presets:
|
presets:
|
||||||
@@ -58,6 +52,7 @@ formatters:
|
|||||||
enable:
|
enable:
|
||||||
- gofmt
|
- gofmt
|
||||||
- goimports
|
- goimports
|
||||||
|
- gofumpt
|
||||||
exclusions:
|
exclusions:
|
||||||
generated: lax
|
generated: lax
|
||||||
paths:
|
paths:
|
||||||
|
|||||||
+4
-2
@@ -23,7 +23,9 @@ include:
|
|||||||
Examples of unacceptable behavior by participants include:
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
|
||||||
advances
|
advances
|
||||||
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
* Public or private harassment
|
* Public or private harassment
|
||||||
* Publishing others' private information, such as a physical or electronic
|
* Publishing others' private information, such as a physical or electronic
|
||||||
@@ -55,7 +57,7 @@ further defined and clarified by project maintainers.
|
|||||||
## Enforcement
|
## Enforcement
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
reported by contacting the project team at ivan+abuse@flanders.co.nz. All
|
reported by contacting the project team at <ivan+abuse@flanders.co.nz>. All
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
@@ -68,7 +70,7 @@ members of the project's leadership.
|
|||||||
## Attribution
|
## Attribution
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
available at [http://contributor-covenant.org/version/1/4][version]
|
available at [<http://contributor-covenant.org/version/1/4>][version]
|
||||||
|
|
||||||
[homepage]: http://contributor-covenant.org
|
[homepage]: http://contributor-covenant.org
|
||||||
[version]: http://contributor-covenant.org/version/1/4/
|
[version]: http://contributor-covenant.org/version/1/4/
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
# Contributors
|
||||||
|
|
||||||
|
- Repository: ['go-openapi/analysis']
|
||||||
|
|
||||||
|
| Total Contributors | Total Contributions |
|
||||||
|
| --- | --- |
|
||||||
|
| 15 | 202 |
|
||||||
|
|
||||||
|
| Username | All Time Contribution Count | All Commits |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| @fredbi | 99 | <https://github.com/go-openapi/analysis/commits?author=fredbi> |
|
||||||
|
| @casualjim | 70 | <https://github.com/go-openapi/analysis/commits?author=casualjim> |
|
||||||
|
| @keramix | 9 | <https://github.com/go-openapi/analysis/commits?author=keramix> |
|
||||||
|
| @youyuanwu | 8 | <https://github.com/go-openapi/analysis/commits?author=youyuanwu> |
|
||||||
|
| @msample | 3 | <https://github.com/go-openapi/analysis/commits?author=msample> |
|
||||||
|
| @kul-amr | 3 | <https://github.com/go-openapi/analysis/commits?author=kul-amr> |
|
||||||
|
| @mbohlool | 2 | <https://github.com/go-openapi/analysis/commits?author=mbohlool> |
|
||||||
|
| @Copilot | 1 | <https://github.com/go-openapi/analysis/commits?author=Copilot> |
|
||||||
|
| @danielfbm | 1 | <https://github.com/go-openapi/analysis/commits?author=danielfbm> |
|
||||||
|
| @gregmarr | 1 | <https://github.com/go-openapi/analysis/commits?author=gregmarr> |
|
||||||
|
| @guillemj | 1 | <https://github.com/go-openapi/analysis/commits?author=guillemj> |
|
||||||
|
| @knweiss | 1 | <https://github.com/go-openapi/analysis/commits?author=knweiss> |
|
||||||
|
| @tklauser | 1 | <https://github.com/go-openapi/analysis/commits?author=tklauser> |
|
||||||
|
| @cuishuang | 1 | <https://github.com/go-openapi/analysis/commits?author=cuishuang> |
|
||||||
|
| @ujjwalsh | 1 | <https://github.com/go-openapi/analysis/commits?author=ujjwalsh> |
|
||||||
|
|
||||||
|
_this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_
|
||||||
+108
-8
@@ -1,22 +1,46 @@
|
|||||||
# OpenAPI analysis [](https://github.com/go-openapi/analysis/actions?query=workflow%3A"go+test") [](https://codecov.io/gh/go-openapi/analysis)
|
# analysis
|
||||||
|
|
||||||
[](https://slackin.goswagger.io)
|
<!-- Badges: status -->
|
||||||
[](https://raw.githubusercontent.com/go-openapi/analysis/master/LICENSE)
|
[![Tests][test-badge]][test-url] [![Coverage][cov-badge]][cov-url] [![CI vuln scan][vuln-scan-badge]][vuln-scan-url] [![CodeQL][codeql-badge]][codeql-url]
|
||||||
[](https://pkg.go.dev/github.com/go-openapi/analysis)
|
<!-- Badges: release & docker images -->
|
||||||
[](https://goreportcard.com/report/github.com/go-openapi/analysis)
|
<!-- Badges: code quality -->
|
||||||
|
<!-- Badges: license & compliance -->
|
||||||
|
[![Release][release-badge]][release-url] [![Go Report Card][gocard-badge]][gocard-url] [![CodeFactor Grade][codefactor-badge]][codefactor-url] [![License][license-badge]][license-url]
|
||||||
|
<!-- Badges: documentation & support -->
|
||||||
|
<!-- Badges: others & stats -->
|
||||||
|
[![GoDoc][godoc-badge]][godoc-url] [![Discord Channel][discord-badge]][discord-url] [![go version][goversion-badge]][goversion-url] ![Top language][top-badge] ![Commits since latest release][commits-badge]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
A foundational library to analyze an OAI specification document for easier reasoning about the content.
|
A foundational library to analyze an OAI specification document for easier reasoning about the content.
|
||||||
|
|
||||||
## What's inside?
|
## Announcements
|
||||||
|
|
||||||
|
* **2025-12-19** : new community chat on discord
|
||||||
|
* a new discord community channel is available to be notified of changes and support users
|
||||||
|
* our venerable Slack channel remains open, and will be eventually discontinued on **2026-03-31**
|
||||||
|
|
||||||
|
You may join the discord community by clicking the invite link on the discord badge (also above). [![Discord Channel][discord-badge]][discord-url]
|
||||||
|
|
||||||
|
Or join our Slack channel: [![Slack Channel][slack-logo]![slack-badge]][slack-url]
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
API is stable.
|
||||||
|
|
||||||
|
## Import this library in your project
|
||||||
|
|
||||||
|
```cmd
|
||||||
|
go get github.com/go-openapi/analysis
|
||||||
|
```
|
||||||
|
|
||||||
|
## What's inside
|
||||||
|
|
||||||
* An analyzer providing methods to walk the functional content of a specification
|
* An analyzer providing methods to walk the functional content of a specification
|
||||||
* A spec flattener producing a self-contained document bundle, while preserving `$ref`s
|
* A spec flattener producing a self-contained document bundle, while preserving `$ref`s
|
||||||
* A spec merger ("mixin") to merge several spec documents into a primary spec
|
* A spec merger ("mixin") to merge several spec documents into a primary spec
|
||||||
* A spec "fixer" ensuring that response descriptions are non empty
|
* A spec "fixer" ensuring that response descriptions are non empty
|
||||||
|
|
||||||
[Documentation](https://pkg.go.dev/github.com/go-openapi/analysis)
|
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
* Does this library support OpenAPI 3?
|
* Does this library support OpenAPI 3?
|
||||||
@@ -25,3 +49,79 @@ A foundational library to analyze an OAI specification document for easier reaso
|
|||||||
> This package currently only supports OpenAPI 2.0 (aka Swagger 2.0).
|
> This package currently only supports OpenAPI 2.0 (aka Swagger 2.0).
|
||||||
> There is no plan to make it evolve toward supporting OpenAPI 3.x.
|
> There is no plan to make it evolve toward supporting OpenAPI 3.x.
|
||||||
> This [discussion thread](https://github.com/go-openapi/spec/issues/21) relates the full story.
|
> This [discussion thread](https://github.com/go-openapi/spec/issues/21) relates the full story.
|
||||||
|
|
||||||
|
## Change log
|
||||||
|
|
||||||
|
See <https://github.com/go-openapi/analysis/releases>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Licensing
|
||||||
|
|
||||||
|
This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
|
||||||
|
|
||||||
|
<!--
|
||||||
|
See the license NOTICE, which recalls the licensing terms of all the pieces of software
|
||||||
|
on top of which it has been built.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Other documentation
|
||||||
|
|
||||||
|
* [All-time contributors](./CONTRIBUTORS.md)
|
||||||
|
* [Contributing guidelines](.github/CONTRIBUTING.md)
|
||||||
|
* [Maintainers documentation](docs/MAINTAINERS.md)
|
||||||
|
* [Code style](docs/STYLE.md)
|
||||||
|
|
||||||
|
## Cutting a new release
|
||||||
|
|
||||||
|
Maintainers can cut a new release by either:
|
||||||
|
|
||||||
|
* running [this workflow](https://github.com/go-openapi/analysis/actions/workflows/bump-release.yml)
|
||||||
|
* or pushing a semver tag
|
||||||
|
* signed tags are preferred
|
||||||
|
* The tag message is prepended to release notes
|
||||||
|
|
||||||
|
<!-- Badges: status -->
|
||||||
|
[test-badge]: https://github.com/go-openapi/analysis/actions/workflows/go-test.yml/badge.svg
|
||||||
|
[test-url]: https://github.com/go-openapi/analysis/actions/workflows/go-test.yml
|
||||||
|
[cov-badge]: https://codecov.io/gh/go-openapi/analysis/branch/master/graph/badge.svg
|
||||||
|
[cov-url]: https://codecov.io/gh/go-openapi/analysis
|
||||||
|
[vuln-scan-badge]: https://github.com/go-openapi/analysis/actions/workflows/scanner.yml/badge.svg
|
||||||
|
[vuln-scan-url]: https://github.com/go-openapi/analysis/actions/workflows/scanner.yml
|
||||||
|
[codeql-badge]: https://github.com/go-openapi/analysis/actions/workflows/codeql.yml/badge.svg
|
||||||
|
[codeql-url]: https://github.com/go-openapi/analysis/actions/workflows/codeql.yml
|
||||||
|
<!-- Badges: release & docker images -->
|
||||||
|
[release-badge]: https://badge.fury.io/gh/go-openapi%2Fanalysis.svg
|
||||||
|
[release-url]: https://badge.fury.io/gh/go-openapi%2Fanalysis
|
||||||
|
<!-- Badges: code quality -->
|
||||||
|
[gocard-badge]: https://goreportcard.com/badge/github.com/go-openapi/analysis
|
||||||
|
[gocard-url]: https://goreportcard.com/report/github.com/go-openapi/analysis
|
||||||
|
[codefactor-badge]: https://img.shields.io/codefactor/grade/github/go-openapi/analysis
|
||||||
|
[codefactor-url]: https://www.codefactor.io/repository/github/go-openapi/analysis
|
||||||
|
<!-- Badges: documentation & support -->
|
||||||
|
[godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/analysis
|
||||||
|
[godoc-url]: http://pkg.go.dev/github.com/go-openapi/analysis
|
||||||
|
[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
|
||||||
|
[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
|
||||||
|
[slack-url]: https://goswagger.slack.com/archives/C04R30YMU
|
||||||
|
[discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue
|
||||||
|
[discord-url]: https://discord.gg/twZ9BwT3
|
||||||
|
|
||||||
|
<!-- Badges: license & compliance -->
|
||||||
|
[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
|
||||||
|
[license-url]: https://github.com/go-openapi/analysis/?tab=Apache-2.0-1-ov-file#readme
|
||||||
|
<!-- Badges: others & stats -->
|
||||||
|
[goversion-badge]: https://img.shields.io/github/go-mod/go-version/go-openapi/analysis
|
||||||
|
[goversion-url]: https://github.com/go-openapi/analysis/blob/master/go.mod
|
||||||
|
[top-badge]: https://img.shields.io/github/languages/top/go-openapi/analysis
|
||||||
|
[commits-badge]: https://img.shields.io/github/commits-since/go-openapi/analysis/latest
|
||||||
|
|||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
This policy outlines the commitment and practices of the go-openapi maintainers regarding security.
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| ------- | ------------------ |
|
||||||
|
| 0.x | :white_check_mark: |
|
||||||
|
|
||||||
|
## Vulnerability checks in place
|
||||||
|
|
||||||
|
This repository uses automated vulnerability scans, at every merged commit and at least once a week.
|
||||||
|
|
||||||
|
We use:
|
||||||
|
|
||||||
|
* [`GitHub CodeQL`][codeql-url]
|
||||||
|
* [`trivy`][trivy-url]
|
||||||
|
* [`govulncheck`][govulncheck-url]
|
||||||
|
|
||||||
|
Reports are centralized in github security reports and visible only to the maintainers.
|
||||||
|
|
||||||
|
## Reporting a vulnerability
|
||||||
|
|
||||||
|
If you become aware of a security vulnerability that affects the current repository,
|
||||||
|
**please report it privately to the maintainers**
|
||||||
|
rather than opening a publicly visible GitHub issue.
|
||||||
|
|
||||||
|
Please follow the instructions provided by github to [Privately report a security vulnerability][github-guidance-url].
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> On Github, navigate to the project's "Security" tab then click on "Report a vulnerability".
|
||||||
|
|
||||||
|
[codeql-url]: https://github.com/github/codeql
|
||||||
|
[trivy-url]: https://trivy.dev/docs/latest/getting-started
|
||||||
|
[govulncheck-url]: https://go.dev/blog/govulncheck
|
||||||
|
[github-guidance-url]: https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability
|
||||||
+38
-38
@@ -164,13 +164,13 @@ func New(doc *spec.Swagger) *Spec {
|
|||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
// SecurityRequirement is a representation of a security requirement for an operation
|
// SecurityRequirement is a representation of a security requirement for an operation.
|
||||||
type SecurityRequirement struct {
|
type SecurityRequirement struct {
|
||||||
Name string
|
Name string
|
||||||
Scopes []string
|
Scopes []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// SecurityRequirementsFor gets the security requirements for the operation
|
// SecurityRequirementsFor gets the security requirements for the operation.
|
||||||
func (s *Spec) SecurityRequirementsFor(operation *spec.Operation) [][]SecurityRequirement {
|
func (s *Spec) SecurityRequirementsFor(operation *spec.Operation) [][]SecurityRequirement {
|
||||||
if s.spec.Security == nil && operation.Security == nil {
|
if s.spec.Security == nil && operation.Security == nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -204,7 +204,7 @@ func (s *Spec) SecurityRequirementsFor(operation *spec.Operation) [][]SecurityRe
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// SecurityDefinitionsForRequirements gets the matching security definitions for a set of requirements
|
// SecurityDefinitionsForRequirements gets the matching security definitions for a set of requirements.
|
||||||
func (s *Spec) SecurityDefinitionsForRequirements(requirements []SecurityRequirement) map[string]spec.SecurityScheme {
|
func (s *Spec) SecurityDefinitionsForRequirements(requirements []SecurityRequirement) map[string]spec.SecurityScheme {
|
||||||
result := make(map[string]spec.SecurityScheme)
|
result := make(map[string]spec.SecurityScheme)
|
||||||
|
|
||||||
@@ -219,7 +219,7 @@ func (s *Spec) SecurityDefinitionsForRequirements(requirements []SecurityRequire
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// SecurityDefinitionsFor gets the matching security definitions for a set of requirements
|
// SecurityDefinitionsFor gets the matching security definitions for a set of requirements.
|
||||||
func (s *Spec) SecurityDefinitionsFor(operation *spec.Operation) map[string]spec.SecurityScheme {
|
func (s *Spec) SecurityDefinitionsFor(operation *spec.Operation) map[string]spec.SecurityScheme {
|
||||||
requirements := s.SecurityRequirementsFor(operation)
|
requirements := s.SecurityRequirementsFor(operation)
|
||||||
if len(requirements) == 0 {
|
if len(requirements) == 0 {
|
||||||
@@ -250,7 +250,7 @@ func (s *Spec) SecurityDefinitionsFor(operation *spec.Operation) map[string]spec
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// ConsumesFor gets the mediatypes for the operation
|
// ConsumesFor gets the mediatypes for the operation.
|
||||||
func (s *Spec) ConsumesFor(operation *spec.Operation) []string {
|
func (s *Spec) ConsumesFor(operation *spec.Operation) []string {
|
||||||
if len(operation.Consumes) == 0 {
|
if len(operation.Consumes) == 0 {
|
||||||
cons := make(map[string]struct{}, len(s.spec.Consumes))
|
cons := make(map[string]struct{}, len(s.spec.Consumes))
|
||||||
@@ -269,7 +269,7 @@ func (s *Spec) ConsumesFor(operation *spec.Operation) []string {
|
|||||||
return s.structMapKeys(cons)
|
return s.structMapKeys(cons)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProducesFor gets the mediatypes for the operation
|
// ProducesFor gets the mediatypes for the operation.
|
||||||
func (s *Spec) ProducesFor(operation *spec.Operation) []string {
|
func (s *Spec) ProducesFor(operation *spec.Operation) []string {
|
||||||
if len(operation.Produces) == 0 {
|
if len(operation.Produces) == 0 {
|
||||||
prod := make(map[string]struct{}, len(s.spec.Produces))
|
prod := make(map[string]struct{}, len(s.spec.Produces))
|
||||||
@@ -306,7 +306,7 @@ func fieldNameFromParam(param *spec.Parameter) string {
|
|||||||
// whenever an error is encountered while resolving references
|
// whenever an error is encountered while resolving references
|
||||||
// on parameters.
|
// on parameters.
|
||||||
//
|
//
|
||||||
// This function takes as input the spec.Parameter which triggered the
|
// This function takes as input the [spec.Parameter] which triggered the
|
||||||
// error and the error itself.
|
// error and the error itself.
|
||||||
//
|
//
|
||||||
// If the callback function returns false, the calling function should bail.
|
// If the callback function returns false, the calling function should bail.
|
||||||
@@ -329,7 +329,7 @@ func (s *Spec) ParametersFor(operationID string) []spec.Parameter {
|
|||||||
// Does not assume parameters properly resolve references or that
|
// Does not assume parameters properly resolve references or that
|
||||||
// such references actually resolve to a parameter object.
|
// such references actually resolve to a parameter object.
|
||||||
//
|
//
|
||||||
// Upon error, invoke a ErrorOnParamFunc callback with the erroneous
|
// Upon error, invoke a [ErrorOnParamFunc] callback with the erroneous
|
||||||
// parameters. If the callback is set to nil, panics upon errors.
|
// parameters. If the callback is set to nil, panics upon errors.
|
||||||
func (s *Spec) SafeParametersFor(operationID string, callmeOnError ErrorOnParamFunc) []spec.Parameter {
|
func (s *Spec) SafeParametersFor(operationID string, callmeOnError ErrorOnParamFunc) []spec.Parameter {
|
||||||
gatherParams := func(pi *spec.PathItem, op *spec.Operation) []spec.Parameter {
|
gatherParams := func(pi *spec.PathItem, op *spec.Operation) []spec.Parameter {
|
||||||
@@ -337,7 +337,7 @@ func (s *Spec) SafeParametersFor(operationID string, callmeOnError ErrorOnParamF
|
|||||||
s.paramsAsMap(pi.Parameters, bag, callmeOnError)
|
s.paramsAsMap(pi.Parameters, bag, callmeOnError)
|
||||||
s.paramsAsMap(op.Parameters, bag, callmeOnError)
|
s.paramsAsMap(op.Parameters, bag, callmeOnError)
|
||||||
|
|
||||||
var res []spec.Parameter
|
res := make([]spec.Parameter, 0, len(bag))
|
||||||
for _, v := range bag {
|
for _, v := range bag {
|
||||||
res = append(res, v)
|
res = append(res, v)
|
||||||
}
|
}
|
||||||
@@ -388,7 +388,7 @@ func (s *Spec) ParamsFor(method, path string) map[string]spec.Parameter {
|
|||||||
// Does not assume parameters properly resolve references or that
|
// Does not assume parameters properly resolve references or that
|
||||||
// such references actually resolve to a parameter object.
|
// such references actually resolve to a parameter object.
|
||||||
//
|
//
|
||||||
// Upon error, invoke a ErrorOnParamFunc callback with the erroneous
|
// Upon error, invoke a [ErrorOnParamFunc] callback with the erroneous
|
||||||
// parameters. If the callback is set to nil, panics upon errors.
|
// parameters. If the callback is set to nil, panics upon errors.
|
||||||
func (s *Spec) SafeParamsFor(method, path string, callmeOnError ErrorOnParamFunc) map[string]spec.Parameter {
|
func (s *Spec) SafeParamsFor(method, path string, callmeOnError ErrorOnParamFunc) map[string]spec.Parameter {
|
||||||
res := make(map[string]spec.Parameter)
|
res := make(map[string]spec.Parameter)
|
||||||
@@ -400,7 +400,7 @@ func (s *Spec) SafeParamsFor(method, path string, callmeOnError ErrorOnParamFunc
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// OperationForName gets the operation for the given id
|
// OperationForName gets the operation for the given id.
|
||||||
func (s *Spec) OperationForName(operationID string) (string, string, *spec.Operation, bool) {
|
func (s *Spec) OperationForName(operationID string) (string, string, *spec.Operation, bool) {
|
||||||
for method, pathItem := range s.operations {
|
for method, pathItem := range s.operations {
|
||||||
for path, op := range pathItem {
|
for path, op := range pathItem {
|
||||||
@@ -413,7 +413,7 @@ func (s *Spec) OperationForName(operationID string) (string, string, *spec.Opera
|
|||||||
return "", "", nil, false
|
return "", "", nil, false
|
||||||
}
|
}
|
||||||
|
|
||||||
// OperationFor the given method and path
|
// OperationFor the given method and path.
|
||||||
func (s *Spec) OperationFor(method, path string) (*spec.Operation, bool) {
|
func (s *Spec) OperationFor(method, path string) (*spec.Operation, bool) {
|
||||||
if mp, ok := s.operations[strings.ToUpper(method)]; ok {
|
if mp, ok := s.operations[strings.ToUpper(method)]; ok {
|
||||||
op, fn := mp[path]
|
op, fn := mp[path]
|
||||||
@@ -424,12 +424,12 @@ func (s *Spec) OperationFor(method, path string) (*spec.Operation, bool) {
|
|||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Operations gathers all the operations specified in the spec document
|
// Operations gathers all the operations specified in the spec document.
|
||||||
func (s *Spec) Operations() map[string]map[string]*spec.Operation {
|
func (s *Spec) Operations() map[string]map[string]*spec.Operation {
|
||||||
return s.operations
|
return s.operations
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllPaths returns all the paths in the swagger spec
|
// AllPaths returns all the paths in the swagger spec.
|
||||||
func (s *Spec) AllPaths() map[string]spec.PathItem {
|
func (s *Spec) AllPaths() map[string]spec.PathItem {
|
||||||
if s.spec == nil || s.spec.Paths == nil {
|
if s.spec == nil || s.spec.Paths == nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -438,7 +438,7 @@ func (s *Spec) AllPaths() map[string]spec.PathItem {
|
|||||||
return s.spec.Paths.Paths
|
return s.spec.Paths.Paths
|
||||||
}
|
}
|
||||||
|
|
||||||
// OperationIDs gets all the operation ids based on method an dpath
|
// OperationIDs gets all the operation ids based on method an dpath.
|
||||||
func (s *Spec) OperationIDs() []string {
|
func (s *Spec) OperationIDs() []string {
|
||||||
if len(s.operations) == 0 {
|
if len(s.operations) == 0 {
|
||||||
return nil
|
return nil
|
||||||
@@ -458,7 +458,7 @@ func (s *Spec) OperationIDs() []string {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// OperationMethodPaths gets all the operation ids based on method an dpath
|
// OperationMethodPaths gets all the operation ids based on method an dpath.
|
||||||
func (s *Spec) OperationMethodPaths() []string {
|
func (s *Spec) OperationMethodPaths() []string {
|
||||||
if len(s.operations) == 0 {
|
if len(s.operations) == 0 {
|
||||||
return nil
|
return nil
|
||||||
@@ -474,22 +474,22 @@ func (s *Spec) OperationMethodPaths() []string {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// RequiredConsumes gets all the distinct consumes that are specified in the specification document
|
// RequiredConsumes gets all the distinct consumes that are specified in the specification document.
|
||||||
func (s *Spec) RequiredConsumes() []string {
|
func (s *Spec) RequiredConsumes() []string {
|
||||||
return s.structMapKeys(s.consumes)
|
return s.structMapKeys(s.consumes)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RequiredProduces gets all the distinct produces that are specified in the specification document
|
// RequiredProduces gets all the distinct produces that are specified in the specification document.
|
||||||
func (s *Spec) RequiredProduces() []string {
|
func (s *Spec) RequiredProduces() []string {
|
||||||
return s.structMapKeys(s.produces)
|
return s.structMapKeys(s.produces)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RequiredSecuritySchemes gets all the distinct security schemes that are specified in the swagger spec
|
// RequiredSecuritySchemes gets all the distinct security schemes that are specified in the swagger spec.
|
||||||
func (s *Spec) RequiredSecuritySchemes() []string {
|
func (s *Spec) RequiredSecuritySchemes() []string {
|
||||||
return s.structMapKeys(s.authSchemes)
|
return s.structMapKeys(s.authSchemes)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SchemaRef is a reference to a schema
|
// SchemaRef is a reference to a schema.
|
||||||
type SchemaRef struct {
|
type SchemaRef struct {
|
||||||
Name string
|
Name string
|
||||||
Ref spec.Ref
|
Ref spec.Ref
|
||||||
@@ -498,7 +498,7 @@ type SchemaRef struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SchemasWithAllOf returns schema references to all schemas that are defined
|
// SchemasWithAllOf returns schema references to all schemas that are defined
|
||||||
// with an allOf key
|
// with an allOf key.
|
||||||
func (s *Spec) SchemasWithAllOf() (result []SchemaRef) {
|
func (s *Spec) SchemasWithAllOf() (result []SchemaRef) {
|
||||||
for _, v := range s.allOfs {
|
for _, v := range s.allOfs {
|
||||||
result = append(result, v)
|
result = append(result, v)
|
||||||
@@ -507,7 +507,7 @@ func (s *Spec) SchemasWithAllOf() (result []SchemaRef) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllDefinitions returns schema references for all the definitions that were discovered
|
// AllDefinitions returns schema references for all the definitions that were discovered.
|
||||||
func (s *Spec) AllDefinitions() (result []SchemaRef) {
|
func (s *Spec) AllDefinitions() (result []SchemaRef) {
|
||||||
for _, v := range s.allSchemas {
|
for _, v := range s.allSchemas {
|
||||||
result = append(result, v)
|
result = append(result, v)
|
||||||
@@ -516,7 +516,7 @@ func (s *Spec) AllDefinitions() (result []SchemaRef) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllDefinitionReferences returns json refs for all the discovered schemas
|
// AllDefinitionReferences returns JSON references for all the discovered schemas.
|
||||||
func (s *Spec) AllDefinitionReferences() (result []string) {
|
func (s *Spec) AllDefinitionReferences() (result []string) {
|
||||||
for _, v := range s.references.schemas {
|
for _, v := range s.references.schemas {
|
||||||
result = append(result, v.String())
|
result = append(result, v.String())
|
||||||
@@ -525,7 +525,7 @@ func (s *Spec) AllDefinitionReferences() (result []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllParameterReferences returns json refs for all the discovered parameters
|
// AllParameterReferences returns JSON references for all the discovered parameters.
|
||||||
func (s *Spec) AllParameterReferences() (result []string) {
|
func (s *Spec) AllParameterReferences() (result []string) {
|
||||||
for _, v := range s.references.parameters {
|
for _, v := range s.references.parameters {
|
||||||
result = append(result, v.String())
|
result = append(result, v.String())
|
||||||
@@ -534,7 +534,7 @@ func (s *Spec) AllParameterReferences() (result []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllResponseReferences returns json refs for all the discovered responses
|
// AllResponseReferences returns JSON references for all the discovered responses.
|
||||||
func (s *Spec) AllResponseReferences() (result []string) {
|
func (s *Spec) AllResponseReferences() (result []string) {
|
||||||
for _, v := range s.references.responses {
|
for _, v := range s.references.responses {
|
||||||
result = append(result, v.String())
|
result = append(result, v.String())
|
||||||
@@ -543,7 +543,7 @@ func (s *Spec) AllResponseReferences() (result []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllPathItemReferences returns the references for all the items
|
// AllPathItemReferences returns the references for all the items.
|
||||||
func (s *Spec) AllPathItemReferences() (result []string) {
|
func (s *Spec) AllPathItemReferences() (result []string) {
|
||||||
for _, v := range s.references.pathItems {
|
for _, v := range s.references.pathItems {
|
||||||
result = append(result, v.String())
|
result = append(result, v.String())
|
||||||
@@ -564,7 +564,7 @@ func (s *Spec) AllItemsReferences() (result []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllReferences returns all the references found in the document, with possible duplicates
|
// AllReferences returns all the references found in the document, with possible duplicates.
|
||||||
func (s *Spec) AllReferences() (result []string) {
|
func (s *Spec) AllReferences() (result []string) {
|
||||||
for _, v := range s.references.allRefs {
|
for _, v := range s.references.allRefs {
|
||||||
result = append(result, v.String())
|
result = append(result, v.String())
|
||||||
@@ -573,7 +573,7 @@ func (s *Spec) AllReferences() (result []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllRefs returns all the unique references found in the document
|
// AllRefs returns all the unique references found in the document.
|
||||||
func (s *Spec) AllRefs() (result []spec.Ref) {
|
func (s *Spec) AllRefs() (result []spec.Ref) {
|
||||||
set := make(map[string]struct{})
|
set := make(map[string]struct{})
|
||||||
for _, v := range s.references.allRefs {
|
for _, v := range s.references.allRefs {
|
||||||
@@ -592,61 +592,61 @@ func (s *Spec) AllRefs() (result []spec.Ref) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ParameterPatterns returns all the patterns found in parameters
|
// ParameterPatterns returns all the patterns found in parameters
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) ParameterPatterns() map[string]string {
|
func (s *Spec) ParameterPatterns() map[string]string {
|
||||||
return cloneStringMap(s.patterns.parameters)
|
return cloneStringMap(s.patterns.parameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
// HeaderPatterns returns all the patterns found in response headers
|
// HeaderPatterns returns all the patterns found in response headers
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) HeaderPatterns() map[string]string {
|
func (s *Spec) HeaderPatterns() map[string]string {
|
||||||
return cloneStringMap(s.patterns.headers)
|
return cloneStringMap(s.patterns.headers)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ItemsPatterns returns all the patterns found in simple array items
|
// ItemsPatterns returns all the patterns found in simple array items
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) ItemsPatterns() map[string]string {
|
func (s *Spec) ItemsPatterns() map[string]string {
|
||||||
return cloneStringMap(s.patterns.items)
|
return cloneStringMap(s.patterns.items)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SchemaPatterns returns all the patterns found in schemas
|
// SchemaPatterns returns all the patterns found in schemas
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) SchemaPatterns() map[string]string {
|
func (s *Spec) SchemaPatterns() map[string]string {
|
||||||
return cloneStringMap(s.patterns.schemas)
|
return cloneStringMap(s.patterns.schemas)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllPatterns returns all the patterns found in the spec
|
// AllPatterns returns all the patterns found in the spec
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) AllPatterns() map[string]string {
|
func (s *Spec) AllPatterns() map[string]string {
|
||||||
return cloneStringMap(s.patterns.allPatterns)
|
return cloneStringMap(s.patterns.allPatterns)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParameterEnums returns all the enums found in parameters
|
// ParameterEnums returns all the enums found in parameters
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) ParameterEnums() map[string][]any {
|
func (s *Spec) ParameterEnums() map[string][]any {
|
||||||
return cloneEnumMap(s.enums.parameters)
|
return cloneEnumMap(s.enums.parameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
// HeaderEnums returns all the enums found in response headers
|
// HeaderEnums returns all the enums found in response headers
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) HeaderEnums() map[string][]any {
|
func (s *Spec) HeaderEnums() map[string][]any {
|
||||||
return cloneEnumMap(s.enums.headers)
|
return cloneEnumMap(s.enums.headers)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ItemsEnums returns all the enums found in simple array items
|
// ItemsEnums returns all the enums found in simple array items
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) ItemsEnums() map[string][]any {
|
func (s *Spec) ItemsEnums() map[string][]any {
|
||||||
return cloneEnumMap(s.enums.items)
|
return cloneEnumMap(s.enums.items)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SchemaEnums returns all the enums found in schemas
|
// SchemaEnums returns all the enums found in schemas
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) SchemaEnums() map[string][]any {
|
func (s *Spec) SchemaEnums() map[string][]any {
|
||||||
return cloneEnumMap(s.enums.schemas)
|
return cloneEnumMap(s.enums.schemas)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllEnums returns all the enums found in the spec
|
// AllEnums returns all the enums found in the spec
|
||||||
// the map is cloned to avoid accidental changes
|
// the map is cloned to avoid accidental changes.
|
||||||
func (s *Spec) AllEnums() map[string][]any {
|
func (s *Spec) AllEnums() map[string][]any {
|
||||||
return cloneEnumMap(s.enums.allEnums)
|
return cloneEnumMap(s.enums.allEnums)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -9,4 +9,4 @@ import (
|
|||||||
"github.com/go-openapi/analysis/internal/debug"
|
"github.com/go-openapi/analysis/internal/debug"
|
||||||
)
|
)
|
||||||
|
|
||||||
var debugLog = debug.GetLogger("analysis", os.Getenv("SWAGGER_DEBUG") != "")
|
var debugLog = debug.GetLogger("analysis", os.Getenv("SWAGGER_DEBUG") != "") //nolint:gochecknoglobals // it's okay to use a private global for logging
|
||||||
|
|||||||
+27
-28
@@ -1,32 +1,31 @@
|
|||||||
// SPDX-FileCopyrightText: Copyright 2015-2025 go-swagger maintainers
|
// SPDX-FileCopyrightText: Copyright 2015-2025 go-swagger maintainers
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
/*
|
// Package analysis provides methods to work with a Swagger specification document from
|
||||||
Package analysis provides methods to work with a Swagger specification document from
|
// package go-openapi/spec.
|
||||||
package go-openapi/spec.
|
//
|
||||||
|
// # Analyzing a specification
|
||||||
## Analyzing a specification
|
//
|
||||||
|
// An analysed specification object (type Spec) provides methods to work with swagger definition.
|
||||||
An analysed specification object (type Spec) provides methods to work with swagger definition.
|
//
|
||||||
|
// # Flattening or expanding a specification
|
||||||
## Flattening or expanding a specification
|
//
|
||||||
|
// Flattening a specification bundles all remote $ref in the main spec document.
|
||||||
Flattening a specification bundles all remote $ref in the main spec document.
|
// Depending on flattening options, additional preprocessing may take place:
|
||||||
Depending on flattening options, additional preprocessing may take place:
|
//
|
||||||
- full flattening: replacing all inline complex constructs by a named entry in #/definitions
|
// - full flattening: replacing all inline complex constructs by a named entry in #/definitions
|
||||||
- expand: replace all $ref's in the document by their expanded content
|
// - expand: replace all $ref's in the document by their expanded content
|
||||||
|
//
|
||||||
## Merging several specifications
|
// # Merging several specifications
|
||||||
|
//
|
||||||
Mixin several specifications merges all Swagger constructs, and warns about found conflicts.
|
// [Mixin] several specifications merges all Swagger constructs, and warns about found conflicts.
|
||||||
|
//
|
||||||
## Fixing a specification
|
// # Fixing a specification
|
||||||
|
//
|
||||||
Unmarshalling a specification with golang json unmarshalling may lead to
|
// Unmarshalling a specification with golang [json] unmarshalling may lead to
|
||||||
some unwanted result on present but empty fields.
|
// some unwanted result on present but empty fields.
|
||||||
|
//
|
||||||
## Analyzing a Swagger schema
|
// # Analyzing a Swagger schema
|
||||||
|
//
|
||||||
Swagger schemas are analyzed to determine their complexity and qualify their content.
|
// Swagger schemas are analyzed to determine their complexity and qualify their content.
|
||||||
*/
|
|
||||||
package analysis
|
package analysis
|
||||||
|
|||||||
+47
-10
@@ -21,7 +21,7 @@ import (
|
|||||||
|
|
||||||
const definitionsPath = "#/definitions"
|
const definitionsPath = "#/definitions"
|
||||||
|
|
||||||
// newRef stores information about refs created during the flattening process
|
// newRef stores information about refs created during the flattening process.
|
||||||
type newRef struct {
|
type newRef struct {
|
||||||
key string
|
key string
|
||||||
newName string
|
newName string
|
||||||
@@ -32,7 +32,7 @@ type newRef struct {
|
|||||||
parents []string
|
parents []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// context stores intermediary results from flatten
|
// context stores intermediary results from flatten.
|
||||||
type context struct {
|
type context struct {
|
||||||
newRefs map[string]*newRef
|
newRefs map[string]*newRef
|
||||||
warnings []string
|
warnings []string
|
||||||
@@ -52,13 +52,15 @@ func newContext() *context {
|
|||||||
// There is a minimal and a full flattening mode.
|
// There is a minimal and a full flattening mode.
|
||||||
//
|
//
|
||||||
// Minimally flattening a spec means:
|
// Minimally flattening a spec means:
|
||||||
|
//
|
||||||
// - Expanding parameters, responses, path items, parameter items and header items (references to schemas are left
|
// - Expanding parameters, responses, path items, parameter items and header items (references to schemas are left
|
||||||
// unscathed)
|
// unscathed)
|
||||||
// - Importing external (http, file) references so they become internal to the document
|
// - Importing external ([http], file) references so they become internal to the document
|
||||||
// - Moving every JSON pointer to a $ref to a named definition (i.e. the reworked spec does not contain pointers
|
// - Moving every JSON pointer to a $ref to a named definition (i.e. the reworked spec does not contain pointers
|
||||||
// like "$ref": "#/definitions/myObject/allOfs/1")
|
// like "$ref": "#/definitions/myObject/allOfs/1")
|
||||||
//
|
//
|
||||||
// A minimally flattened spec thus guarantees the following properties:
|
// A minimally flattened spec thus guarantees the following properties:
|
||||||
|
//
|
||||||
// - all $refs point to a local definition (i.e. '#/definitions/...')
|
// - all $refs point to a local definition (i.e. '#/definitions/...')
|
||||||
// - definitions are unique
|
// - definitions are unique
|
||||||
//
|
//
|
||||||
@@ -70,6 +72,7 @@ func newContext() *context {
|
|||||||
// Minimal flattening is necessary and sufficient for codegen rendering using go-swagger.
|
// Minimal flattening is necessary and sufficient for codegen rendering using go-swagger.
|
||||||
//
|
//
|
||||||
// Fully flattening a spec means:
|
// Fully flattening a spec means:
|
||||||
|
//
|
||||||
// - Moving every complex inline schema to be a definition with an auto-generated name in a depth-first fashion.
|
// - Moving every complex inline schema to be a definition with an auto-generated name in a depth-first fashion.
|
||||||
//
|
//
|
||||||
// By complex, we mean every JSON object with some properties.
|
// By complex, we mean every JSON object with some properties.
|
||||||
@@ -80,6 +83,7 @@ func newContext() *context {
|
|||||||
// have been created.
|
// have been created.
|
||||||
//
|
//
|
||||||
// Available flattening options:
|
// Available flattening options:
|
||||||
|
//
|
||||||
// - Minimal: stops flattening after minimal $ref processing, leaving schema constructs untouched
|
// - Minimal: stops flattening after minimal $ref processing, leaving schema constructs untouched
|
||||||
// - Expand: expand all $ref's in the document (inoperant if Minimal set to true)
|
// - Expand: expand all $ref's in the document (inoperant if Minimal set to true)
|
||||||
// - Verbose: croaks about name conflicts detected
|
// - Verbose: croaks about name conflicts detected
|
||||||
@@ -87,8 +91,9 @@ func newContext() *context {
|
|||||||
//
|
//
|
||||||
// NOTE: expansion removes all $ref save circular $ref, which remain in place
|
// NOTE: expansion removes all $ref save circular $ref, which remain in place
|
||||||
//
|
//
|
||||||
// TODO: additional options
|
// Desirable future additions: additional options.
|
||||||
// - ProgagateNameExtensions: ensure that created entries properly follow naming rules when their parent have set a
|
//
|
||||||
|
// - PropagateNameExtensions: ensure that created entries properly follow naming rules when their parent have set a
|
||||||
// x-go-name extension
|
// x-go-name extension
|
||||||
// - LiftAllOfs:
|
// - LiftAllOfs:
|
||||||
// - limit the flattening of allOf members when simple objects
|
// - limit the flattening of allOf members when simple objects
|
||||||
@@ -169,7 +174,7 @@ func expand(opts *FlattenOpts) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// normalizeRef strips the current file from any absolute file $ref. This works around issue go-openapi/spec#76:
|
// normalizeRef strips the current file from any absolute file $ref. This works around issue go-openapi/spec#76:
|
||||||
// leading absolute file in $ref is stripped
|
// leading absolute file in $ref is stripped.
|
||||||
func normalizeRef(opts *FlattenOpts) error {
|
func normalizeRef(opts *FlattenOpts) error {
|
||||||
debugLog("normalizeRef")
|
debugLog("normalizeRef")
|
||||||
|
|
||||||
@@ -491,14 +496,25 @@ func stripPointersAndOAIGen(opts *FlattenOpts) error {
|
|||||||
// pointer and name resolution again.
|
// pointer and name resolution again.
|
||||||
func stripOAIGen(opts *FlattenOpts) (bool, error) {
|
func stripOAIGen(opts *FlattenOpts) (bool, error) {
|
||||||
debugLog("stripOAIGen")
|
debugLog("stripOAIGen")
|
||||||
|
// Ensure the spec analysis is fresh, as previous steps (namePointers, etc.) might have modified refs.
|
||||||
|
opts.Spec.reload()
|
||||||
|
|
||||||
replacedWithComplex := false
|
replacedWithComplex := false
|
||||||
|
|
||||||
// figure out referers of OAIGen definitions (doing it before the ref start mutating)
|
// figure out referers of OAIGen definitions (doing it before the ref start mutating)
|
||||||
for _, r := range opts.flattenContext.newRefs {
|
// Sort keys to ensure deterministic processing order
|
||||||
|
sortedKeys := make([]string, 0, len(opts.flattenContext.newRefs))
|
||||||
|
for k := range opts.flattenContext.newRefs {
|
||||||
|
sortedKeys = append(sortedKeys, k)
|
||||||
|
}
|
||||||
|
sort.Strings(sortedKeys)
|
||||||
|
|
||||||
|
for _, k := range sortedKeys {
|
||||||
|
r := opts.flattenContext.newRefs[k]
|
||||||
updateRefParents(opts.Spec.references.allRefs, r)
|
updateRefParents(opts.Spec.references.allRefs, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
for k := range opts.flattenContext.newRefs {
|
for _, k := range sortedKeys {
|
||||||
r := opts.flattenContext.newRefs[k]
|
r := opts.flattenContext.newRefs[k]
|
||||||
debugLog("newRefs[%s]: isOAIGen: %t, resolved: %t, name: %s, path:%s, #parents: %d, parents: %v, ref: %s",
|
debugLog("newRefs[%s]: isOAIGen: %t, resolved: %t, name: %s, path:%s, #parents: %d, parents: %v, ref: %s",
|
||||||
k, r.isOAIGen, r.resolved, r.newName, r.path, len(r.parents), r.parents, r.schema.Ref.String())
|
k, r.isOAIGen, r.resolved, r.newName, r.path, len(r.parents), r.parents, r.schema.Ref.String())
|
||||||
@@ -521,7 +537,7 @@ func stripOAIGen(opts *FlattenOpts) (bool, error) {
|
|||||||
return replacedWithComplex, nil
|
return replacedWithComplex, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// updateRefParents updates all parents of an updated $ref
|
// updateRefParents updates all parents of an updated $ref.
|
||||||
func updateRefParents(allRefs map[string]spec.Ref, r *newRef) {
|
func updateRefParents(allRefs map[string]spec.Ref, r *newRef) {
|
||||||
if !r.isOAIGen || r.resolved { // bail on already resolved entries (avoid looping)
|
if !r.isOAIGen || r.resolved { // bail on already resolved entries (avoid looping)
|
||||||
return
|
return
|
||||||
@@ -580,6 +596,19 @@ func stripOAIGenForRef(opts *FlattenOpts, k string, r *newRef) (bool, error) {
|
|||||||
replacedWithComplex = true
|
replacedWithComplex = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update parents of the target ref (pr[0]) if it is also a newRef (OAIGen)
|
||||||
|
// This ensures that if the target is later deleted/merged, it knows about these new referers.
|
||||||
|
for _, nr := range opts.flattenContext.newRefs {
|
||||||
|
if nr.path == pr[0] && nr.isOAIGen && !nr.resolved {
|
||||||
|
for _, p := range pr[1:] {
|
||||||
|
if !slices.Contains(nr.parents, p) {
|
||||||
|
nr.parents = append(nr.parents, p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove OAIGen definition
|
// remove OAIGen definition
|
||||||
@@ -587,7 +616,15 @@ func stripOAIGenForRef(opts *FlattenOpts, k string, r *newRef) (bool, error) {
|
|||||||
delete(opts.Swagger().Definitions, path.Base(r.path))
|
delete(opts.Swagger().Definitions, path.Base(r.path))
|
||||||
|
|
||||||
// propagate changes in ref index for keys which have this one as a parent
|
// propagate changes in ref index for keys which have this one as a parent
|
||||||
for kk, value := range opts.flattenContext.newRefs {
|
// Sort keys to ensure deterministic update order
|
||||||
|
propagateKeys := make([]string, 0, len(opts.flattenContext.newRefs))
|
||||||
|
for k := range opts.flattenContext.newRefs {
|
||||||
|
propagateKeys = append(propagateKeys, k)
|
||||||
|
}
|
||||||
|
sort.Strings(propagateKeys)
|
||||||
|
|
||||||
|
for _, kk := range propagateKeys {
|
||||||
|
value := opts.flattenContext.newRefs[kk]
|
||||||
if kk == k || !value.isOAIGen || value.resolved {
|
if kk == k || !value.isOAIGen || value.resolved {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -17,7 +17,7 @@ import (
|
|||||||
"github.com/go-openapi/swag/mangling"
|
"github.com/go-openapi/swag/mangling"
|
||||||
)
|
)
|
||||||
|
|
||||||
// InlineSchemaNamer finds a new name for an inlined type
|
// InlineSchemaNamer finds a new name for an inlined type.
|
||||||
type InlineSchemaNamer struct {
|
type InlineSchemaNamer struct {
|
||||||
Spec *spec.Swagger
|
Spec *spec.Swagger
|
||||||
Operations map[string]operations.OpRef
|
Operations map[string]operations.OpRef
|
||||||
@@ -25,7 +25,7 @@ type InlineSchemaNamer struct {
|
|||||||
opts *FlattenOpts
|
opts *FlattenOpts
|
||||||
}
|
}
|
||||||
|
|
||||||
// Name yields a new name for the inline schema
|
// Name yields a new name for the inline schema.
|
||||||
func (isn *InlineSchemaNamer) Name(key string, schema *spec.Schema, aschema *AnalyzedSchema) error {
|
func (isn *InlineSchemaNamer) Name(key string, schema *spec.Schema, aschema *AnalyzedSchema) error {
|
||||||
debugLog("naming inlined schema at %s", key)
|
debugLog("naming inlined schema at %s", key)
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ func (isn *InlineSchemaNamer) Name(key string, schema *spec.Schema, aschema *Ana
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// uniqifyName yields a unique name for a definition
|
// uniqifyName yields a unique name for a definition.
|
||||||
func uniqifyName(definitions spec.Definitions, name string) (string, bool) {
|
func uniqifyName(definitions spec.Definitions, name string) (string, bool) {
|
||||||
isOAIGen := false
|
isOAIGen := false
|
||||||
if name == "" {
|
if name == "" {
|
||||||
@@ -244,7 +244,7 @@ func namesForDefinition(parts sortref.SplitKey) ([][]string, int) {
|
|||||||
return [][]string{}, 0
|
return [][]string{}, 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// partAdder knows how to interpret a schema when it comes to build a name from parts
|
// partAdder knows how to interpret a schema when it comes to build a name from parts.
|
||||||
func partAdder(aschema *AnalyzedSchema) sortref.PartAdder {
|
func partAdder(aschema *AnalyzedSchema) sortref.PartAdder {
|
||||||
return func(part string) []string {
|
return func(part string) []string {
|
||||||
segments := make([]string, 0, minSegments)
|
segments := make([]string, 0, minSegments)
|
||||||
|
|||||||
+3
-3
@@ -35,7 +35,7 @@ type FlattenOpts struct {
|
|||||||
_ struct{} // require keys
|
_ struct{} // require keys
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandOpts creates a spec.ExpandOptions to configure expanding a specification document.
|
// ExpandOpts creates a spec.[spec.ExpandOptions] to configure expanding a specification document.
|
||||||
func (f *FlattenOpts) ExpandOpts(skipSchemas bool) *spec.ExpandOptions {
|
func (f *FlattenOpts) ExpandOpts(skipSchemas bool) *spec.ExpandOptions {
|
||||||
return &spec.ExpandOptions{
|
return &spec.ExpandOptions{
|
||||||
RelativeBase: f.BasePath,
|
RelativeBase: f.BasePath,
|
||||||
@@ -44,13 +44,13 @@ func (f *FlattenOpts) ExpandOpts(skipSchemas bool) *spec.ExpandOptions {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Swagger gets the swagger specification for this flatten operation
|
// Swagger gets the swagger specification for this flatten operation.
|
||||||
func (f *FlattenOpts) Swagger() *spec.Swagger {
|
func (f *FlattenOpts) Swagger() *spec.Swagger {
|
||||||
return f.Spec.spec
|
return f.Spec.spec
|
||||||
}
|
}
|
||||||
|
|
||||||
// croak logs notifications and warnings about valid, but possibly unwanted constructs resulting
|
// croak logs notifications and warnings about valid, but possibly unwanted constructs resulting
|
||||||
// from flattening a spec
|
// from flattening a spec.
|
||||||
func (f *FlattenOpts) croak() {
|
func (f *FlattenOpts) croak() {
|
||||||
if !f.Verbose {
|
if !f.Verbose {
|
||||||
return
|
return
|
||||||
|
|||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
go 1.24.0
|
||||||
|
|
||||||
|
use (
|
||||||
|
.
|
||||||
|
./internal/testintegration
|
||||||
|
)
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
|
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||||
|
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
|
||||||
|
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
|
||||||
|
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
||||||
|
github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30 h1:BHT1/DKsYDGkUgQ2jmMaozVcdk+sVfz0+1ZJq4zkWgw=
|
||||||
|
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
||||||
|
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
|
||||||
|
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
|
||||||
|
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
|
||||||
|
go.mongodb.org/mongo-driver v1.17.6 h1:87JUG1wZfWsr6rIz3ZmpH90rL5tea7O3IHuSwHUpsss=
|
||||||
|
go.mongodb.org/mongo-driver v1.17.6/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
||||||
|
golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
|
||||||
|
golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts=
|
||||||
|
golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos=
|
||||||
|
golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc=
|
||||||
|
golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
|
||||||
|
golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
|
||||||
|
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
|
||||||
|
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
|
||||||
|
golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||||
|
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
|
||||||
|
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||||
|
golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=
|
||||||
|
golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
|
||||||
|
golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
|
||||||
|
golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
|
||||||
|
golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc=
|
||||||
|
golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg=
|
||||||
+2
-4
@@ -11,11 +11,9 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var output = os.Stdout //nolint:gochecknoglobals // this is on purpose to be overridable during tests
|
||||||
output = os.Stdout
|
|
||||||
)
|
|
||||||
|
|
||||||
// GetLogger provides a prefix debug logger
|
// GetLogger provides a prefix debug logger.
|
||||||
func GetLogger(prefix string, debug bool) func(string, ...any) {
|
func GetLogger(prefix string, debug bool) func(string, ...any) {
|
||||||
if debug {
|
if debug {
|
||||||
logger := log.New(output, prefix+":", log.LstdFlags)
|
logger := log.New(output, prefix+":", log.LstdFlags)
|
||||||
|
|||||||
+6
-4
@@ -17,8 +17,9 @@ import (
|
|||||||
// NOTE: does not support JSONschema ID for $ref (we assume we are working with swagger specs here).
|
// NOTE: does not support JSONschema ID for $ref (we assume we are working with swagger specs here).
|
||||||
//
|
//
|
||||||
// NOTE(windows):
|
// NOTE(windows):
|
||||||
// * refs are assumed to have been normalized with drive letter lower cased (from go-openapi/spec)
|
//
|
||||||
// * "/ in paths may appear as escape sequences
|
// - refs are assumed to have been normalized with drive letter lower cased (from go-openapi/spec)
|
||||||
|
// - "/ in paths may appear as escape sequences.
|
||||||
func RebaseRef(baseRef string, ref string) string {
|
func RebaseRef(baseRef string, ref string) string {
|
||||||
baseRef, _ = url.PathUnescape(baseRef)
|
baseRef, _ = url.PathUnescape(baseRef)
|
||||||
ref, _ = url.PathUnescape(ref)
|
ref, _ = url.PathUnescape(ref)
|
||||||
@@ -69,8 +70,9 @@ func RebaseRef(baseRef string, ref string) string {
|
|||||||
// Path renders absolute path on remote file refs
|
// Path renders absolute path on remote file refs
|
||||||
//
|
//
|
||||||
// NOTE(windows):
|
// NOTE(windows):
|
||||||
// * refs are assumed to have been normalized with drive letter lower cased (from go-openapi/spec)
|
//
|
||||||
// * "/ in paths may appear as escape sequences
|
// - refs are assumed to have been normalized with drive letter lower cased (from go-openapi/spec)
|
||||||
|
// - "/ in paths may appear as escape sequences.
|
||||||
func Path(ref spec.Ref, basePath string) string {
|
func Path(ref spec.Ref, basePath string) string {
|
||||||
uri, _ := url.PathUnescape(ref.String())
|
uri, _ := url.PathUnescape(ref.String())
|
||||||
if ref.HasFragmentOnly || filepath.IsAbs(uri) {
|
if ref.HasFragmentOnly || filepath.IsAbs(uri) {
|
||||||
|
|||||||
+6
-6
@@ -14,12 +14,12 @@ import (
|
|||||||
"github.com/go-openapi/swag/mangling"
|
"github.com/go-openapi/swag/mangling"
|
||||||
)
|
)
|
||||||
|
|
||||||
// AllOpRefsByRef returns an index of sortable operations
|
// AllOpRefsByRef returns an index of sortable operations.
|
||||||
func AllOpRefsByRef(specDoc Provider, operationIDs []string) map[string]OpRef {
|
func AllOpRefsByRef(specDoc Provider, operationIDs []string) map[string]OpRef {
|
||||||
return OpRefsByRef(GatherOperations(specDoc, operationIDs))
|
return OpRefsByRef(GatherOperations(specDoc, operationIDs))
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpRefsByRef indexes a map of sortable operations
|
// OpRefsByRef indexes a map of sortable operations.
|
||||||
func OpRefsByRef(oprefs map[string]OpRef) map[string]OpRef {
|
func OpRefsByRef(oprefs map[string]OpRef) map[string]OpRef {
|
||||||
result := make(map[string]OpRef, len(oprefs))
|
result := make(map[string]OpRef, len(oprefs))
|
||||||
for _, v := range oprefs {
|
for _, v := range oprefs {
|
||||||
@@ -29,7 +29,7 @@ func OpRefsByRef(oprefs map[string]OpRef) map[string]OpRef {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpRef is an indexable, sortable operation
|
// OpRef is an indexable, sortable operation.
|
||||||
type OpRef struct {
|
type OpRef struct {
|
||||||
Method string
|
Method string
|
||||||
Path string
|
Path string
|
||||||
@@ -39,19 +39,19 @@ type OpRef struct {
|
|||||||
Ref spec.Ref
|
Ref spec.Ref
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpRefs is a sortable collection of operations
|
// OpRefs is a sortable collection of operations.
|
||||||
type OpRefs []OpRef
|
type OpRefs []OpRef
|
||||||
|
|
||||||
func (o OpRefs) Len() int { return len(o) }
|
func (o OpRefs) Len() int { return len(o) }
|
||||||
func (o OpRefs) Swap(i, j int) { o[i], o[j] = o[j], o[i] }
|
func (o OpRefs) Swap(i, j int) { o[i], o[j] = o[j], o[i] }
|
||||||
func (o OpRefs) Less(i, j int) bool { return o[i].Key < o[j].Key }
|
func (o OpRefs) Less(i, j int) bool { return o[i].Key < o[j].Key }
|
||||||
|
|
||||||
// Provider knows how to collect operations from a spec
|
// Provider knows how to collect operations from a spec.
|
||||||
type Provider interface {
|
type Provider interface {
|
||||||
Operations() map[string]map[string]*spec.Operation
|
Operations() map[string]map[string]*spec.Operation
|
||||||
}
|
}
|
||||||
|
|
||||||
// GatherOperations builds a map of sorted operations from a spec
|
// GatherOperations builds a map of sorted operations from a spec.
|
||||||
func GatherOperations(specDoc Provider, operationIDs []string) map[string]OpRef {
|
func GatherOperations(specDoc Provider, operationIDs []string) map[string]OpRef {
|
||||||
var oprefs OpRefs
|
var oprefs OpRefs
|
||||||
mangler := mangling.NewNameMangler()
|
mangler := mangling.NewNameMangler()
|
||||||
|
|||||||
+1
-1
@@ -58,7 +58,7 @@ func ErrCyclicChain(key string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ErrInvalidPointerType(key string, value any, err error) error {
|
func ErrInvalidPointerType(key string, value any, err error) error {
|
||||||
return fmt.Errorf("invalid type for resolved JSON pointer %s. Expected a schema a, got: %T (%v): %w",
|
return fmt.Errorf("invalid type for resolved JSON pointer %s. Expected a schema a, got: %T (%w): %w",
|
||||||
key, value, err, ErrReplace,
|
key, value, err, ErrReplace,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-14
@@ -22,9 +22,10 @@ const (
|
|||||||
allocMediumMap = 64
|
allocMediumMap = 64
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//nolint:gochecknoglobals // it's okay to use a private global for logging
|
||||||
var debugLog = debug.GetLogger("analysis/flatten/replace", os.Getenv("SWAGGER_DEBUG") != "")
|
var debugLog = debug.GetLogger("analysis/flatten/replace", os.Getenv("SWAGGER_DEBUG") != "")
|
||||||
|
|
||||||
// RewriteSchemaToRef replaces a schema with a Ref
|
// RewriteSchemaToRef replaces a schema with a Ref.
|
||||||
func RewriteSchemaToRef(sp *spec.Swagger, key string, ref spec.Ref) error {
|
func RewriteSchemaToRef(sp *spec.Swagger, key string, ref spec.Ref) error {
|
||||||
debugLog("rewriting schema to ref for %s with %s", key, ref.String())
|
debugLog("rewriting schema to ref for %s with %s", key, ref.String())
|
||||||
_, value, err := getPointerFromKey(sp, key)
|
_, value, err := getPointerFromKey(sp, key)
|
||||||
@@ -142,7 +143,7 @@ func rewriteParentRef(sp *spec.Swagger, key string, ref spec.Ref) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// getPointerFromKey retrieves the content of the JSON pointer "key"
|
// getPointerFromKey retrieves the content of the JSON pointer "key".
|
||||||
func getPointerFromKey(sp any, key string) (string, any, error) {
|
func getPointerFromKey(sp any, key string) (string, any, error) {
|
||||||
switch sp.(type) {
|
switch sp.(type) {
|
||||||
case *spec.Schema:
|
case *spec.Schema:
|
||||||
@@ -154,7 +155,10 @@ func getPointerFromKey(sp any, key string) (string, any, error) {
|
|||||||
return "", sp, nil
|
return "", sp, nil
|
||||||
}
|
}
|
||||||
// unescape chars in key, e.g. "{}" from path params
|
// unescape chars in key, e.g. "{}" from path params
|
||||||
pth, _ := url.PathUnescape(key[1:])
|
pth, err := url.PathUnescape(key[1:])
|
||||||
|
if err != nil {
|
||||||
|
return "", nil, errors.Join(err, ErrReplace)
|
||||||
|
}
|
||||||
ptr, err := jsonpointer.New(pth)
|
ptr, err := jsonpointer.New(pth)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, errors.Join(err, ErrReplace)
|
return "", nil, errors.Join(err, ErrReplace)
|
||||||
@@ -170,7 +174,7 @@ func getPointerFromKey(sp any, key string) (string, any, error) {
|
|||||||
return pth, value, nil
|
return pth, value, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// getParentFromKey retrieves the container of the JSON pointer "key"
|
// getParentFromKey retrieves the container of the JSON pointer "key".
|
||||||
func getParentFromKey(sp any, key string) (string, string, any, error) {
|
func getParentFromKey(sp any, key string) (string, string, any, error) {
|
||||||
switch sp.(type) {
|
switch sp.(type) {
|
||||||
case *spec.Schema:
|
case *spec.Schema:
|
||||||
@@ -196,7 +200,7 @@ func getParentFromKey(sp any, key string) (string, string, any, error) {
|
|||||||
return parent, entry, pvalue, nil
|
return parent, entry, pvalue, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateRef replaces a ref by another one
|
// UpdateRef replaces a ref by another one.
|
||||||
func UpdateRef(sp any, key string, ref spec.Ref) error {
|
func UpdateRef(sp any, key string, ref spec.Ref) error {
|
||||||
switch sp.(type) {
|
switch sp.(type) {
|
||||||
case *spec.Schema:
|
case *spec.Schema:
|
||||||
@@ -265,7 +269,7 @@ func UpdateRef(sp any, key string, ref spec.Ref) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateRefWithSchema replaces a ref with a schema (i.e. re-inline schema)
|
// UpdateRefWithSchema replaces a ref with a schema (i.e. re-inline schema).
|
||||||
func UpdateRefWithSchema(sp *spec.Swagger, key string, sch *spec.Schema) error {
|
func UpdateRefWithSchema(sp *spec.Swagger, key string, sch *spec.Schema) error {
|
||||||
debugLog("updating ref for %s with schema", key)
|
debugLog("updating ref for %s with schema", key)
|
||||||
pth, value, err := getPointerFromKey(sp, key)
|
pth, value, err := getPointerFromKey(sp, key)
|
||||||
@@ -324,7 +328,7 @@ func UpdateRefWithSchema(sp *spec.Swagger, key string, sch *spec.Schema) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeepestRefResult holds the results from DeepestRef analysis
|
// DeepestRefResult holds the results from [DeepestRef] analysis.
|
||||||
type DeepestRefResult struct {
|
type DeepestRefResult struct {
|
||||||
Ref spec.Ref
|
Ref spec.Ref
|
||||||
Schema *spec.Schema
|
Schema *spec.Schema
|
||||||
@@ -332,10 +336,13 @@ type DeepestRefResult struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// DeepestRef finds the first definition ref, from a cascade of nested refs which are not definitions.
|
// DeepestRef finds the first definition ref, from a cascade of nested refs which are not definitions.
|
||||||
|
//
|
||||||
// - if no definition is found, returns the deepest ref.
|
// - if no definition is found, returns the deepest ref.
|
||||||
// - pointers to external files are expanded
|
// - pointers to external files are expanded
|
||||||
//
|
//
|
||||||
// NOTE: all external $ref's are assumed to be already expanded at this stage.
|
// NOTE: all external $ref's are assumed to be already expanded at this stage.
|
||||||
|
//
|
||||||
|
//nolint:gocognit,gocyclo,cyclop // definitely needs a refactoring, in a follow-up PR
|
||||||
func DeepestRef(sp *spec.Swagger, opts *spec.ExpandOptions, ref spec.Ref) (*DeepestRefResult, error) {
|
func DeepestRef(sp *spec.Swagger, opts *spec.ExpandOptions, ref spec.Ref) (*DeepestRefResult, error) {
|
||||||
if !ref.HasFragmentOnly {
|
if !ref.HasFragmentOnly {
|
||||||
// we found an external $ref, which is odd at this stage:
|
// we found an external $ref, which is odd at this stage:
|
||||||
@@ -392,11 +399,13 @@ DOWNREF:
|
|||||||
case spec.Response:
|
case spec.Response:
|
||||||
// a pointer points to a schema initially marshalled in responses section...
|
// a pointer points to a schema initially marshalled in responses section...
|
||||||
// Attempt to convert this to a schema. If this fails, the spec is invalid
|
// Attempt to convert this to a schema. If this fails, the spec is invalid
|
||||||
asJSON, _ := refable.MarshalJSON()
|
asJSON, err := refable.MarshalJSON()
|
||||||
|
if err != nil {
|
||||||
|
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
||||||
|
}
|
||||||
var asSchema spec.Schema
|
var asSchema spec.Schema
|
||||||
|
|
||||||
err := asSchema.UnmarshalJSON(asJSON)
|
if err = asSchema.UnmarshalJSON(asJSON); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
||||||
}
|
}
|
||||||
warnings = append(warnings, fmt.Sprintf("found $ref %q (response) interpreted as schema", currentRef.String()))
|
warnings = append(warnings, fmt.Sprintf("found $ref %q (response) interpreted as schema", currentRef.String()))
|
||||||
@@ -409,9 +418,12 @@ DOWNREF:
|
|||||||
case spec.Parameter:
|
case spec.Parameter:
|
||||||
// a pointer points to a schema initially marshalled in parameters section...
|
// a pointer points to a schema initially marshalled in parameters section...
|
||||||
// Attempt to convert this to a schema. If this fails, the spec is invalid
|
// Attempt to convert this to a schema. If this fails, the spec is invalid
|
||||||
asJSON, _ := refable.MarshalJSON()
|
asJSON, err := refable.MarshalJSON()
|
||||||
|
if err != nil {
|
||||||
|
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
||||||
|
}
|
||||||
var asSchema spec.Schema
|
var asSchema spec.Schema
|
||||||
if err := asSchema.UnmarshalJSON(asJSON); err != nil {
|
if err = asSchema.UnmarshalJSON(asJSON); err != nil {
|
||||||
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,9 +440,12 @@ DOWNREF:
|
|||||||
break DOWNREF
|
break DOWNREF
|
||||||
}
|
}
|
||||||
|
|
||||||
asJSON, _ := json.Marshal(refable)
|
asJSON, err := json.Marshal(refable)
|
||||||
|
if err != nil {
|
||||||
|
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
||||||
|
}
|
||||||
var asSchema spec.Schema
|
var asSchema spec.Schema
|
||||||
if err := asSchema.UnmarshalJSON(asJSON); err != nil {
|
if err = asSchema.UnmarshalJSON(asJSON); err != nil {
|
||||||
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
return nil, ErrInvalidPointerType(currentRef.String(), value, err)
|
||||||
}
|
}
|
||||||
warnings = append(warnings, fmt.Sprintf("found $ref %q (%T) interpreted as schema", currentRef.String(), refable))
|
warnings = append(warnings, fmt.Sprintf("found $ref %q (%T) interpreted as schema", currentRef.String(), refable))
|
||||||
|
|||||||
Generated
Vendored
+2
-2
@@ -12,7 +12,7 @@ import (
|
|||||||
|
|
||||||
const allocLargeMap = 150
|
const allocLargeMap = 150
|
||||||
|
|
||||||
// Save registers a schema as an entry in spec #/definitions
|
// Save registers a schema as an entry in spec #/definitions.
|
||||||
func Save(sp *spec.Swagger, name string, schema *spec.Schema) {
|
func Save(sp *spec.Swagger, name string, schema *spec.Schema) {
|
||||||
if schema == nil {
|
if schema == nil {
|
||||||
return
|
return
|
||||||
@@ -25,7 +25,7 @@ func Save(sp *spec.Swagger, name string, schema *spec.Schema) {
|
|||||||
sp.Definitions[name] = *schema
|
sp.Definitions[name] = *schema
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clone deep-clones a schema
|
// Clone deep-clones a schema.
|
||||||
func Clone(schema *spec.Schema) *spec.Schema {
|
func Clone(schema *spec.Schema) *spec.Schema {
|
||||||
var sch spec.Schema
|
var sch spec.Schema
|
||||||
_ = jsonutils.FromDynamicJSON(schema, &sch)
|
_ = jsonutils.FromDynamicJSON(schema, &sch)
|
||||||
|
|||||||
+20
-24
@@ -20,12 +20,8 @@ const (
|
|||||||
definitions = "definitions"
|
definitions = "definitions"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//nolint:gochecknoglobals // it's okay to store small indexes like this as private globals
|
||||||
var (
|
var (
|
||||||
ignoredKeys map[string]struct{}
|
|
||||||
validMethods map[string]struct{}
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
ignoredKeys = map[string]struct{}{
|
ignoredKeys = map[string]struct{}{
|
||||||
"schema": {},
|
"schema": {},
|
||||||
"properties": {},
|
"properties": {},
|
||||||
@@ -43,15 +39,15 @@ func init() {
|
|||||||
"PUT": {},
|
"PUT": {},
|
||||||
"DELETE": {},
|
"DELETE": {},
|
||||||
}
|
}
|
||||||
}
|
)
|
||||||
|
|
||||||
// Key represent a key item constructed from /-separated segments
|
// Key represent a key item constructed from /-separated segments.
|
||||||
type Key struct {
|
type Key struct {
|
||||||
Segments int
|
Segments int
|
||||||
Key string
|
Key string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keys is a sortable collable collection of Keys
|
// Keys is a sortable collable collection of Keys.
|
||||||
type Keys []Key
|
type Keys []Key
|
||||||
|
|
||||||
func (k Keys) Len() int { return len(k) }
|
func (k Keys) Len() int { return len(k) }
|
||||||
@@ -60,7 +56,7 @@ func (k Keys) Less(i, j int) bool {
|
|||||||
return k[i].Segments > k[j].Segments || (k[i].Segments == k[j].Segments && k[i].Key < k[j].Key)
|
return k[i].Segments > k[j].Segments || (k[i].Segments == k[j].Segments && k[i].Key < k[j].Key)
|
||||||
}
|
}
|
||||||
|
|
||||||
// KeyParts construct a SplitKey with all its /-separated segments decomposed. It is sortable.
|
// KeyParts construct a [SplitKey] with all its /-separated segments decomposed. It is sortable.
|
||||||
func KeyParts(key string) SplitKey {
|
func KeyParts(key string) SplitKey {
|
||||||
var res []string
|
var res []string
|
||||||
for part := range strings.SplitSeq(key[1:], "/") {
|
for part := range strings.SplitSeq(key[1:], "/") {
|
||||||
@@ -75,12 +71,12 @@ func KeyParts(key string) SplitKey {
|
|||||||
// SplitKey holds of the parts of a /-separated key, so that their location may be determined.
|
// SplitKey holds of the parts of a /-separated key, so that their location may be determined.
|
||||||
type SplitKey []string
|
type SplitKey []string
|
||||||
|
|
||||||
// IsDefinition is true when the split key is in the #/definitions section of a spec
|
// IsDefinition is true when the split key is in the #/definitions section of a spec.
|
||||||
func (s SplitKey) IsDefinition() bool {
|
func (s SplitKey) IsDefinition() bool {
|
||||||
return len(s) > 1 && s[0] == definitions
|
return len(s) > 1 && s[0] == definitions
|
||||||
}
|
}
|
||||||
|
|
||||||
// DefinitionName yields the name of the definition
|
// DefinitionName yields the name of the definition.
|
||||||
func (s SplitKey) DefinitionName() string {
|
func (s SplitKey) DefinitionName() string {
|
||||||
if !s.IsDefinition() {
|
if !s.IsDefinition() {
|
||||||
return ""
|
return ""
|
||||||
@@ -89,10 +85,10 @@ func (s SplitKey) DefinitionName() string {
|
|||||||
return s[1]
|
return s[1]
|
||||||
}
|
}
|
||||||
|
|
||||||
// PartAdder know how to construct the components of a new name
|
// PartAdder know how to construct the components of a new name.
|
||||||
type PartAdder func(string) []string
|
type PartAdder func(string) []string
|
||||||
|
|
||||||
// BuildName builds a name from segments
|
// BuildName builds a name from segments.
|
||||||
func (s SplitKey) BuildName(segments []string, startIndex int, adder PartAdder) string {
|
func (s SplitKey) BuildName(segments []string, startIndex int, adder PartAdder) string {
|
||||||
for i, part := range s[startIndex:] {
|
for i, part := range s[startIndex:] {
|
||||||
if _, ignored := ignoredKeys[part]; !ignored || s.isKeyName(startIndex+i) {
|
if _, ignored := ignoredKeys[part]; !ignored || s.isKeyName(startIndex+i) {
|
||||||
@@ -103,42 +99,42 @@ func (s SplitKey) BuildName(segments []string, startIndex int, adder PartAdder)
|
|||||||
return strings.Join(segments, " ")
|
return strings.Join(segments, " ")
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsOperation is true when the split key is in the operations section
|
// IsOperation is true when the split key is in the operations section.
|
||||||
func (s SplitKey) IsOperation() bool {
|
func (s SplitKey) IsOperation() bool {
|
||||||
return len(s) > 1 && s[0] == paths
|
return len(s) > 1 && s[0] == paths
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSharedOperationParam is true when the split key is in the parameters section of a path
|
// IsSharedOperationParam is true when the split key is in the parameters section of a path.
|
||||||
func (s SplitKey) IsSharedOperationParam() bool {
|
func (s SplitKey) IsSharedOperationParam() bool {
|
||||||
return len(s) > 2 && s[0] == paths && s[2] == parameters
|
return len(s) > 2 && s[0] == paths && s[2] == parameters
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSharedParam is true when the split key is in the #/parameters section of a spec
|
// IsSharedParam is true when the split key is in the #/parameters section of a spec.
|
||||||
func (s SplitKey) IsSharedParam() bool {
|
func (s SplitKey) IsSharedParam() bool {
|
||||||
return len(s) > 1 && s[0] == parameters
|
return len(s) > 1 && s[0] == parameters
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsOperationParam is true when the split key is in the parameters section of an operation
|
// IsOperationParam is true when the split key is in the parameters section of an operation.
|
||||||
func (s SplitKey) IsOperationParam() bool {
|
func (s SplitKey) IsOperationParam() bool {
|
||||||
return len(s) > 3 && s[0] == paths && s[3] == parameters
|
return len(s) > 3 && s[0] == paths && s[3] == parameters
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsOperationResponse is true when the split key is in the responses section of an operation
|
// IsOperationResponse is true when the split key is in the responses section of an operation.
|
||||||
func (s SplitKey) IsOperationResponse() bool {
|
func (s SplitKey) IsOperationResponse() bool {
|
||||||
return len(s) > 3 && s[0] == paths && s[3] == responses
|
return len(s) > 3 && s[0] == paths && s[3] == responses
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSharedResponse is true when the split key is in the #/responses section of a spec
|
// IsSharedResponse is true when the split key is in the #/responses section of a spec.
|
||||||
func (s SplitKey) IsSharedResponse() bool {
|
func (s SplitKey) IsSharedResponse() bool {
|
||||||
return len(s) > 1 && s[0] == responses
|
return len(s) > 1 && s[0] == responses
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsDefaultResponse is true when the split key is the default response for an operation
|
// IsDefaultResponse is true when the split key is the default response for an operation.
|
||||||
func (s SplitKey) IsDefaultResponse() bool {
|
func (s SplitKey) IsDefaultResponse() bool {
|
||||||
return len(s) > 4 && s[0] == paths && s[3] == responses && s[4] == "default"
|
return len(s) > 4 && s[0] == paths && s[3] == responses && s[4] == "default"
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsStatusCodeResponse is true when the split key is an operation response with a status code
|
// IsStatusCodeResponse is true when the split key is an operation response with a status code.
|
||||||
func (s SplitKey) IsStatusCodeResponse() bool {
|
func (s SplitKey) IsStatusCodeResponse() bool {
|
||||||
isInt := func() bool {
|
isInt := func() bool {
|
||||||
_, err := strconv.Atoi(s[4])
|
_, err := strconv.Atoi(s[4])
|
||||||
@@ -149,7 +145,7 @@ func (s SplitKey) IsStatusCodeResponse() bool {
|
|||||||
return len(s) > 4 && s[0] == paths && s[3] == responses && isInt()
|
return len(s) > 4 && s[0] == paths && s[3] == responses && isInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResponseName yields either the status code or "Default" for a response
|
// ResponseName yields either the status code or "Default" for a response.
|
||||||
func (s SplitKey) ResponseName() string {
|
func (s SplitKey) ResponseName() string {
|
||||||
if s.IsStatusCodeResponse() {
|
if s.IsStatusCodeResponse() {
|
||||||
code, _ := strconv.Atoi(s[4])
|
code, _ := strconv.Atoi(s[4])
|
||||||
@@ -164,7 +160,7 @@ func (s SplitKey) ResponseName() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
// PathItemRef constructs a $ref object from a split key of the form /{path}/{method}
|
// PathItemRef constructs a $ref object from a split key of the form /{path}/{method}.
|
||||||
func (s SplitKey) PathItemRef() spec.Ref {
|
func (s SplitKey) PathItemRef() spec.Ref {
|
||||||
const minValidPathItems = 3
|
const minValidPathItems = 3
|
||||||
if len(s) < minValidPathItems {
|
if len(s) < minValidPathItems {
|
||||||
@@ -179,7 +175,7 @@ func (s SplitKey) PathItemRef() spec.Ref {
|
|||||||
return spec.MustCreateRef("#" + path.Join("/", paths, jsonpointer.Escape(pth), strings.ToUpper(method)))
|
return spec.MustCreateRef("#" + path.Join("/", paths, jsonpointer.Escape(pth), strings.ToUpper(method)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// PathRef constructs a $ref object from a split key of the form /paths/{reference}
|
// PathRef constructs a $ref object from a split key of the form /paths/{reference}.
|
||||||
func (s SplitKey) PathRef() spec.Ref {
|
func (s SplitKey) PathRef() spec.Ref {
|
||||||
if !s.IsOperation() {
|
if !s.IsOperation() {
|
||||||
return spec.Ref{}
|
return spec.Ref{}
|
||||||
|
|||||||
+13
-9
@@ -4,7 +4,9 @@
|
|||||||
package sortref
|
package sortref
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"iter"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"slices"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -12,10 +14,6 @@ import (
|
|||||||
"github.com/go-openapi/spec"
|
"github.com/go-openapi/spec"
|
||||||
)
|
)
|
||||||
|
|
||||||
var depthGroupOrder = []string{
|
|
||||||
"sharedParam", "sharedResponse", "sharedOpParam", "opParam", "codeResponse", "defaultResponse", "definition",
|
|
||||||
}
|
|
||||||
|
|
||||||
type mapIterator struct {
|
type mapIterator struct {
|
||||||
len int
|
len int
|
||||||
mapIter *reflect.MapIter
|
mapIter *reflect.MapIter
|
||||||
@@ -42,7 +40,7 @@ func mustMapIterator(anyMap any) *mapIterator {
|
|||||||
// DepthFirst sorts a map of anything. It groups keys by category
|
// DepthFirst sorts a map of anything. It groups keys by category
|
||||||
// (shared params, op param, statuscode response, default response, definitions)
|
// (shared params, op param, statuscode response, default response, definitions)
|
||||||
// sort groups internally by number of parts in the key and lexical names
|
// sort groups internally by number of parts in the key and lexical names
|
||||||
// flatten groups into a single list of keys
|
// flatten groups into a single list of keys.
|
||||||
func DepthFirst(in any) []string {
|
func DepthFirst(in any) []string {
|
||||||
iterator := mustMapIterator(in)
|
iterator := mustMapIterator(in)
|
||||||
sorted := make([]string, 0, iterator.Len())
|
sorted := make([]string, 0, iterator.Len())
|
||||||
@@ -77,7 +75,7 @@ func DepthFirst(in any) []string {
|
|||||||
grouped[pk] = append(grouped[pk], Key{Segments: len(split), Key: k})
|
grouped[pk] = append(grouped[pk], Key{Segments: len(split), Key: k})
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, pk := range depthGroupOrder {
|
for pk := range depthGroupOrder() {
|
||||||
res := grouped[pk]
|
res := grouped[pk]
|
||||||
sort.Sort(res)
|
sort.Sort(res)
|
||||||
|
|
||||||
@@ -89,6 +87,12 @@ func DepthFirst(in any) []string {
|
|||||||
return sorted
|
return sorted
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func depthGroupOrder() iter.Seq[string] {
|
||||||
|
return slices.Values([]string{
|
||||||
|
"sharedParam", "sharedResponse", "sharedOpParam", "opParam", "codeResponse", "defaultResponse", "definition",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// topMostRefs is able to sort refs by hierarchical then lexicographic order,
|
// topMostRefs is able to sort refs by hierarchical then lexicographic order,
|
||||||
// yielding refs ordered breadth-first.
|
// yielding refs ordered breadth-first.
|
||||||
type topmostRefs []string
|
type topmostRefs []string
|
||||||
@@ -104,7 +108,7 @@ func (k topmostRefs) Less(i, j int) bool {
|
|||||||
return li < lj
|
return li < lj
|
||||||
}
|
}
|
||||||
|
|
||||||
// TopmostFirst sorts references by depth
|
// TopmostFirst sorts references by depth.
|
||||||
func TopmostFirst(refs []string) []string {
|
func TopmostFirst(refs []string) []string {
|
||||||
res := topmostRefs(refs)
|
res := topmostRefs(refs)
|
||||||
sort.Sort(res)
|
sort.Sort(res)
|
||||||
@@ -112,13 +116,13 @@ func TopmostFirst(refs []string) []string {
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// RefRevIdx is a reverse index for references
|
// RefRevIdx is a reverse index for references.
|
||||||
type RefRevIdx struct {
|
type RefRevIdx struct {
|
||||||
Ref spec.Ref
|
Ref spec.Ref
|
||||||
Keys []string
|
Keys []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReverseIndex builds a reverse index for references in schemas
|
// ReverseIndex builds a reverse index for references in schemas.
|
||||||
func ReverseIndex(schemas map[string]spec.Ref, basePath string) map[string]RefRevIdx {
|
func ReverseIndex(schemas map[string]spec.Ref, basePath string) map[string]RefRevIdx {
|
||||||
collected := make(map[string]RefRevIdx)
|
collected := make(map[string]RefRevIdx)
|
||||||
for key, schRef := range schemas {
|
for key, schRef := range schemas {
|
||||||
|
|||||||
+3
-2
@@ -18,12 +18,13 @@ import (
|
|||||||
// needed.
|
// needed.
|
||||||
//
|
//
|
||||||
// The following parts of primary are subject to merge, filling empty details
|
// The following parts of primary are subject to merge, filling empty details
|
||||||
|
//
|
||||||
// - Info
|
// - Info
|
||||||
// - BasePath
|
// - BasePath
|
||||||
// - Host
|
// - Host
|
||||||
// - ExternalDocs
|
// - ExternalDocs
|
||||||
//
|
//
|
||||||
// Consider calling FixEmptyResponseDescriptions() on the modified primary
|
// Consider calling [FixEmptyResponseDescriptions]() on the modified primary
|
||||||
// if you read them from storage and they are valid to start with.
|
// if you read them from storage and they are valid to start with.
|
||||||
//
|
//
|
||||||
// Entries in "paths", "definitions", "parameters" and "responses" are
|
// Entries in "paths", "definitions", "parameters" and "responses" are
|
||||||
@@ -39,7 +40,7 @@ import (
|
|||||||
// etc). Ensure they are canonical if your downstream tools do
|
// etc). Ensure they are canonical if your downstream tools do
|
||||||
// key normalization of any form.
|
// key normalization of any form.
|
||||||
//
|
//
|
||||||
// Merging schemes (http, https), and consumers/producers do not account for
|
// Merging schemes ([http], https), and consumers/producers do not account for
|
||||||
// collisions.
|
// collisions.
|
||||||
func Mixin(primary *spec.Swagger, mixins ...*spec.Swagger) []string {
|
func Mixin(primary *spec.Swagger, mixins ...*spec.Swagger) []string {
|
||||||
skipped := make([]string, 0, len(mixins))
|
skipped := make([]string, 0, len(mixins))
|
||||||
|
|||||||
+3
-3
@@ -8,7 +8,7 @@ import (
|
|||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SchemaOpts configures the schema analyzer
|
// SchemaOpts configures the schema analyzer.
|
||||||
type SchemaOpts struct {
|
type SchemaOpts struct {
|
||||||
Schema *spec.Schema
|
Schema *spec.Schema
|
||||||
Root any
|
Root any
|
||||||
@@ -52,7 +52,7 @@ func Schema(opts SchemaOpts) (*AnalyzedSchema, error) {
|
|||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// AnalyzedSchema indicates what the schema represents
|
// AnalyzedSchema indicates what the schema represents.
|
||||||
type AnalyzedSchema struct {
|
type AnalyzedSchema struct {
|
||||||
schema *spec.Schema
|
schema *spec.Schema
|
||||||
root any
|
root any
|
||||||
@@ -78,7 +78,7 @@ type AnalyzedSchema struct {
|
|||||||
IsEnum bool
|
IsEnum bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inherits copies value fields from other onto this schema
|
// Inherits copies value fields from other onto this schema.
|
||||||
func (a *AnalyzedSchema) inherits(other *AnalyzedSchema) {
|
func (a *AnalyzedSchema) inherits(other *AnalyzedSchema) {
|
||||||
if other == nil {
|
if other == nil {
|
||||||
return
|
return
|
||||||
|
|||||||
-181
@@ -1,181 +0,0 @@
|
|||||||
# git-cliff ~ configuration file
|
|
||||||
# https://git-cliff.org/docs/configuration
|
|
||||||
|
|
||||||
[changelog]
|
|
||||||
header = """
|
|
||||||
"""
|
|
||||||
|
|
||||||
footer = """
|
|
||||||
|
|
||||||
-----
|
|
||||||
|
|
||||||
**[{{ remote.github.repo }}]({{ self::remote_url() }}) license terms**
|
|
||||||
|
|
||||||
[![License][license-badge]][license-url]
|
|
||||||
|
|
||||||
[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
|
|
||||||
[license-url]: {{ self::remote_url() }}/?tab=Apache-2.0-1-ov-file#readme
|
|
||||||
|
|
||||||
{%- macro remote_url() -%}
|
|
||||||
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
|
|
||||||
{%- endmacro -%}
|
|
||||||
"""
|
|
||||||
|
|
||||||
body = """
|
|
||||||
{%- if version %}
|
|
||||||
## [{{ version | trim_start_matches(pat="v") }}]({{ self::remote_url() }}/tree/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
|
|
||||||
{%- else %}
|
|
||||||
## [unreleased]
|
|
||||||
{%- endif %}
|
|
||||||
{%- if message %}
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
{{ message }}
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
{%- endif %}
|
|
||||||
{%- if version %}
|
|
||||||
{%- if previous.version %}
|
|
||||||
|
|
||||||
**Full Changelog**: <{{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}>
|
|
||||||
{%- endif %}
|
|
||||||
{%- else %}
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- if statistics %}{% if statistics.commit_count %}
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
{{ statistics.commit_count }} commits in this release.
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
{%- endif %}{% endif %}
|
|
||||||
-----
|
|
||||||
|
|
||||||
{%- for group, commits in commits | group_by(attribute="group") %}
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
### {{ group | upper_first }}
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
{%- for commit in commits %}
|
|
||||||
{%- if commit.remote.pr_title %}
|
|
||||||
{%- set commit_message = commit.remote.pr_title %}
|
|
||||||
{%- else %}
|
|
||||||
{%- set commit_message = commit.message %}
|
|
||||||
{%- endif %}
|
|
||||||
* {{ commit_message | split(pat="\n") | first | trim }}
|
|
||||||
{%- if commit.remote.username %}
|
|
||||||
{%- raw %} {% endraw %}by [@{{ commit.remote.username }}](https://github.com/{{ commit.remote.username }})
|
|
||||||
{%- endif %}
|
|
||||||
{%- if commit.remote.pr_number %}
|
|
||||||
{%- raw %} {% endraw %}in [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }})
|
|
||||||
{%- endif %}
|
|
||||||
{%- raw %} {% endraw %}[...]({{ self::remote_url() }}/commit/{{ commit.id }})
|
|
||||||
{%- endfor %}
|
|
||||||
{%- endfor %}
|
|
||||||
|
|
||||||
{%- if github %}
|
|
||||||
{%- raw %}\n{% endraw -%}
|
|
||||||
{%- set all_contributors = github.contributors | length %}
|
|
||||||
{%- if github.contributors | filter(attribute="username", value="dependabot[bot]") | length < all_contributors %}
|
|
||||||
-----
|
|
||||||
|
|
||||||
### People who contributed to this release
|
|
||||||
{% endif %}
|
|
||||||
{%- for contributor in github.contributors | filter(attribute="username") | sort(attribute="username") %}
|
|
||||||
{%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
|
|
||||||
* [@{{ contributor.username }}](https://github.com/{{ contributor.username }})
|
|
||||||
{%- endif %}
|
|
||||||
{%- endfor %}
|
|
||||||
|
|
||||||
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
|
|
||||||
-----
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
|
|
||||||
### New Contributors
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
|
|
||||||
{%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
|
|
||||||
* @{{ contributor.username }} made their first contribution
|
|
||||||
{%- if contributor.pr_number %}
|
|
||||||
in [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
|
|
||||||
{%- endif %}
|
|
||||||
{%- endif %}
|
|
||||||
{%- endfor %}
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- raw %}\n{% endraw %}
|
|
||||||
|
|
||||||
{%- macro remote_url() -%}
|
|
||||||
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
|
|
||||||
{%- endmacro -%}
|
|
||||||
"""
|
|
||||||
# Remove leading and trailing whitespaces from the changelog's body.
|
|
||||||
trim = true
|
|
||||||
# Render body even when there are no releases to process.
|
|
||||||
render_always = true
|
|
||||||
# An array of regex based postprocessors to modify the changelog.
|
|
||||||
postprocessors = [
|
|
||||||
# Replace the placeholder <REPO> with a URL.
|
|
||||||
#{ pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" },
|
|
||||||
]
|
|
||||||
# output file path
|
|
||||||
# output = "test.md"
|
|
||||||
|
|
||||||
[git]
|
|
||||||
# Parse commits according to the conventional commits specification.
|
|
||||||
# See https://www.conventionalcommits.org
|
|
||||||
conventional_commits = false
|
|
||||||
# Exclude commits that do not match the conventional commits specification.
|
|
||||||
filter_unconventional = false
|
|
||||||
# Require all commits to be conventional.
|
|
||||||
# Takes precedence over filter_unconventional.
|
|
||||||
require_conventional = false
|
|
||||||
# Split commits on newlines, treating each line as an individual commit.
|
|
||||||
split_commits = false
|
|
||||||
# An array of regex based parsers to modify commit messages prior to further processing.
|
|
||||||
commit_preprocessors = [
|
|
||||||
# Replace issue numbers with link templates to be updated in `changelog.postprocessors`.
|
|
||||||
#{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
|
|
||||||
# Check spelling of the commit message using https://github.com/crate-ci/typos.
|
|
||||||
# If the spelling is incorrect, it will be fixed automatically.
|
|
||||||
#{ pattern = '.*', replace_command = 'typos --write-changes -' }
|
|
||||||
]
|
|
||||||
# Prevent commits that are breaking from being excluded by commit parsers.
|
|
||||||
protect_breaking_commits = false
|
|
||||||
# An array of regex based parsers for extracting data from the commit message.
|
|
||||||
# Assigns commits to groups.
|
|
||||||
# Optionally sets the commit's scope and can decide to exclude commits from further processing.
|
|
||||||
commit_parsers = [
|
|
||||||
{ message = "^[Cc]hore\\([Rr]elease\\): prepare for", skip = true },
|
|
||||||
{ message = "(^[Mm]erge)|([Mm]erge conflict)", skip = true },
|
|
||||||
{ field = "author.name", pattern = "dependabot*", group = "<!-- 0A -->Updates" },
|
|
||||||
{ message = "([Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
|
|
||||||
{ body = "(.*[Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
|
|
||||||
{ message = "([Cc]hore\\(lint\\))|(style)|(lint)|(codeql)|(golangci)", group = "<!-- 05 -->Code quality" },
|
|
||||||
{ message = "(^[Dd]oc)|((?i)readme)|(badge)|(typo)|(documentation)", group = "<!-- 03 -->Documentation" },
|
|
||||||
{ message = "(^[Ff]eat)|(^[Ee]nhancement)", group = "<!-- 00 -->Implemented enhancements" },
|
|
||||||
{ message = "(^ci)|(\\(ci\\))|(fixup\\s+ci)|(fix\\s+ci)|(license)|(example)", group = "<!-- 07 -->Miscellaneous tasks" },
|
|
||||||
{ message = "^test", group = "<!-- 06 -->Testing" },
|
|
||||||
{ message = "(^fix)|(panic)", group = "<!-- 01 -->Fixed bugs" },
|
|
||||||
{ message = "(^refact)|(rework)", group = "<!-- 02 -->Refactor" },
|
|
||||||
{ message = "(^[Pp]erf)|(performance)", group = "<!-- 04 -->Performance" },
|
|
||||||
{ message = "(^[Cc]hore)", group = "<!-- 07 -->Miscellaneous tasks" },
|
|
||||||
{ message = "^[Rr]evert", group = "<!-- 09 -->Reverted changes" },
|
|
||||||
{ message = "(upgrade.*?go)|(go\\s+version)", group = "<!-- 0A -->Updates" },
|
|
||||||
{ message = ".*", group = "<!-- 0B -->Other" },
|
|
||||||
]
|
|
||||||
# Exclude commits that are not matched by any commit parser.
|
|
||||||
filter_commits = false
|
|
||||||
# An array of link parsers for extracting external references, and turning them into URLs, using regex.
|
|
||||||
link_parsers = []
|
|
||||||
# Include only the tags that belong to the current branch.
|
|
||||||
use_branch_tags = false
|
|
||||||
# Order releases topologically instead of chronologically.
|
|
||||||
topo_order = false
|
|
||||||
# Order releases topologically instead of chronologically.
|
|
||||||
topo_order_commits = true
|
|
||||||
# Order of commits in each group/release within the changelog.
|
|
||||||
# Allowed values: newest, oldest
|
|
||||||
sort_commits = "newest"
|
|
||||||
# Process submodules commits
|
|
||||||
recurse_submodules = false
|
|
||||||
|
|
||||||
#[remote.github]
|
|
||||||
#owner = "go-openapi"
|
|
||||||
+5
-1
@@ -1,3 +1,7 @@
|
|||||||
secrets.yml
|
|
||||||
*.out
|
*.out
|
||||||
|
*.cov
|
||||||
|
.idea
|
||||||
|
.env
|
||||||
|
.mcp.json
|
||||||
|
.claude/
|
||||||
settings.local.json
|
settings.local.json
|
||||||
|
|||||||
+5
@@ -12,6 +12,7 @@ linters:
|
|||||||
- paralleltest
|
- paralleltest
|
||||||
- recvcheck
|
- recvcheck
|
||||||
- testpackage
|
- testpackage
|
||||||
|
- thelper
|
||||||
- tparallel
|
- tparallel
|
||||||
- varnamelen
|
- varnamelen
|
||||||
- whitespace
|
- whitespace
|
||||||
@@ -40,6 +41,10 @@ linters:
|
|||||||
- common-false-positives
|
- common-false-positives
|
||||||
- legacy
|
- legacy
|
||||||
- std-error-handling
|
- std-error-handling
|
||||||
|
rules:
|
||||||
|
- linters:
|
||||||
|
- revive
|
||||||
|
text: "avoid package names that conflict with Go standard library package names"
|
||||||
paths:
|
paths:
|
||||||
- third_party$
|
- third_party$
|
||||||
- builtin$
|
- builtin$
|
||||||
|
|||||||
+4
-2
@@ -23,7 +23,9 @@ include:
|
|||||||
Examples of unacceptable behavior by participants include:
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
|
||||||
advances
|
advances
|
||||||
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
* Public or private harassment
|
* Public or private harassment
|
||||||
* Publishing others' private information, such as a physical or electronic
|
* Publishing others' private information, such as a physical or electronic
|
||||||
@@ -55,7 +57,7 @@ further defined and clarified by project maintainers.
|
|||||||
## Enforcement
|
## Enforcement
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
reported by contacting the project team at ivan+abuse@flanders.co.nz. All
|
reported by contacting the project team at <ivan+abuse@flanders.co.nz>. All
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
@@ -68,7 +70,7 @@ members of the project's leadership.
|
|||||||
## Attribution
|
## Attribution
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
available at [http://contributor-covenant.org/version/1/4][version]
|
available at [<http://contributor-covenant.org/version/1/4>][version]
|
||||||
|
|
||||||
[homepage]: http://contributor-covenant.org
|
[homepage]: http://contributor-covenant.org
|
||||||
[version]: http://contributor-covenant.org/version/1/4/
|
[version]: http://contributor-covenant.org/version/1/4/
|
||||||
|
|||||||
+14
-13
@@ -4,21 +4,22 @@
|
|||||||
|
|
||||||
| Total Contributors | Total Contributions |
|
| Total Contributors | Total Contributions |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 12 | 105 |
|
| 13 | 110 |
|
||||||
|
|
||||||
| Username | All Time Contribution Count | All Commits |
|
| Username | All Time Contribution Count | All Commits |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| @casualjim | 58 | https://github.com/go-openapi/errors/commits?author=casualjim |
|
| @casualjim | 58 | <https://github.com/go-openapi/errors/commits?author=casualjim> |
|
||||||
| @fredbi | 32 | https://github.com/go-openapi/errors/commits?author=fredbi |
|
| @fredbi | 36 | <https://github.com/go-openapi/errors/commits?author=fredbi> |
|
||||||
| @youyuanwu | 5 | https://github.com/go-openapi/errors/commits?author=youyuanwu |
|
| @youyuanwu | 5 | <https://github.com/go-openapi/errors/commits?author=youyuanwu> |
|
||||||
| @alexandear | 2 | https://github.com/go-openapi/errors/commits?author=alexandear |
|
| @alexandear | 2 | <https://github.com/go-openapi/errors/commits?author=alexandear> |
|
||||||
| @fiorix | 1 | https://github.com/go-openapi/errors/commits?author=fiorix |
|
| @fiorix | 1 | <https://github.com/go-openapi/errors/commits?author=fiorix> |
|
||||||
| @ligustah | 1 | https://github.com/go-openapi/errors/commits?author=ligustah |
|
| @ligustah | 1 | <https://github.com/go-openapi/errors/commits?author=ligustah> |
|
||||||
| @artemseleznev | 1 | https://github.com/go-openapi/errors/commits?author=artemseleznev |
|
| @artemseleznev | 1 | <https://github.com/go-openapi/errors/commits?author=artemseleznev> |
|
||||||
| @gautierdelorme | 1 | https://github.com/go-openapi/errors/commits?author=gautierdelorme |
|
| @gautierdelorme | 1 | <https://github.com/go-openapi/errors/commits?author=gautierdelorme> |
|
||||||
| @guillemj | 1 | https://github.com/go-openapi/errors/commits?author=guillemj |
|
| @guillemj | 1 | <https://github.com/go-openapi/errors/commits?author=guillemj> |
|
||||||
| @maxatome | 1 | https://github.com/go-openapi/errors/commits?author=maxatome |
|
| @maxatome | 1 | <https://github.com/go-openapi/errors/commits?author=maxatome> |
|
||||||
| @Simon-Li | 1 | https://github.com/go-openapi/errors/commits?author=Simon-Li |
|
| @Simon-Li | 1 | <https://github.com/go-openapi/errors/commits?author=Simon-Li> |
|
||||||
| @ujjwalsh | 1 | https://github.com/go-openapi/errors/commits?author=ujjwalsh |
|
| @aokumasan | 1 | <https://github.com/go-openapi/errors/commits?author=aokumasan> |
|
||||||
|
| @ujjwalsh | 1 | <https://github.com/go-openapi/errors/commits?author=ujjwalsh> |
|
||||||
|
|
||||||
_this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_
|
_this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_
|
||||||
|
|||||||
+4
-9
@@ -51,7 +51,9 @@ errNotImplemented := NotImplemented("method: %s", url)
|
|||||||
See <https://github.com/go-openapi/errors/releases>
|
See <https://github.com/go-openapi/errors/releases>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## Licensing
|
## Licensing
|
||||||
@@ -59,12 +61,9 @@ See <https://github.com/go-openapi/errors/releases>
|
|||||||
This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
|
This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
See the license [NOTICE](./NOTICE), which recalls the licensing terms of all the pieces of software
|
|
||||||
on top of which it has been built.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## Other documentation
|
## Other documentation
|
||||||
@@ -95,23 +94,19 @@ Maintainers can cut a new release by either:
|
|||||||
<!-- Badges: release & docker images -->
|
<!-- Badges: release & docker images -->
|
||||||
[release-badge]: https://badge.fury.io/gh/go-openapi%2Ferrors.svg
|
[release-badge]: https://badge.fury.io/gh/go-openapi%2Ferrors.svg
|
||||||
[release-url]: https://badge.fury.io/gh/go-openapi%2Ferrors
|
[release-url]: https://badge.fury.io/gh/go-openapi%2Ferrors
|
||||||
[gomod-badge]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Ferrors.svg
|
|
||||||
[gomod-url]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Ferrors
|
|
||||||
<!-- Badges: code quality -->
|
<!-- Badges: code quality -->
|
||||||
[gocard-badge]: https://goreportcard.com/badge/github.com/go-openapi/errors
|
[gocard-badge]: https://goreportcard.com/badge/github.com/go-openapi/errors
|
||||||
[gocard-url]: https://goreportcard.com/report/github.com/go-openapi/errors
|
[gocard-url]: https://goreportcard.com/report/github.com/go-openapi/errors
|
||||||
[codefactor-badge]: https://img.shields.io/codefactor/grade/github/go-openapi/errors
|
[codefactor-badge]: https://img.shields.io/codefactor/grade/github/go-openapi/errors
|
||||||
[codefactor-url]: https://www.codefactor.io/repository/github/go-openapi/errors
|
[codefactor-url]: https://www.codefactor.io/repository/github/go-openapi/errors
|
||||||
<!-- Badges: documentation & support -->
|
<!-- Badges: documentation & support -->
|
||||||
[doc-badge]: https://img.shields.io/badge/doc-site-blue?link=https%3A%2F%2Fgoswagger.io%2Fgo-openapi%2F
|
|
||||||
[doc-url]: https://goswagger.io/go-openapi
|
|
||||||
[godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/errors
|
[godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/errors
|
||||||
[godoc-url]: http://pkg.go.dev/github.com/go-openapi/errors
|
[godoc-url]: http://pkg.go.dev/github.com/go-openapi/errors
|
||||||
[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
|
[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
|
||||||
[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
|
[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
|
||||||
[slack-url]: https://goswagger.slack.com/archives/C04R30YMU
|
[slack-url]: https://goswagger.slack.com/archives/C04R30YMU
|
||||||
[discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue
|
[discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue
|
||||||
[discord-url]: https://discord.gg/DrafRmZx
|
[discord-url]: https://discord.gg/twZ9BwT3
|
||||||
|
|
||||||
<!-- Badges: license & compliance -->
|
<!-- Badges: license & compliance -->
|
||||||
[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
|
[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
|
||||||
|
|||||||
+23
-5
@@ -6,14 +6,32 @@ This policy outlines the commitment and practices of the go-openapi maintainers
|
|||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
| 0.22.x | :white_check_mark: |
|
| 0.x | :white_check_mark: |
|
||||||
|
|
||||||
|
## Vulnerability checks in place
|
||||||
|
|
||||||
|
This repository uses automated vulnerability scans, at every merged commit and at least once a week.
|
||||||
|
|
||||||
|
We use:
|
||||||
|
|
||||||
|
* [`GitHub CodeQL`][codeql-url]
|
||||||
|
* [`trivy`][trivy-url]
|
||||||
|
* [`govulncheck`][govulncheck-url]
|
||||||
|
|
||||||
|
Reports are centralized in github security reports and visible only to the maintainers.
|
||||||
|
|
||||||
## Reporting a vulnerability
|
## Reporting a vulnerability
|
||||||
|
|
||||||
If you become aware of a security vulnerability that affects the current repository,
|
If you become aware of a security vulnerability that affects the current repository,
|
||||||
please report it privately to the maintainers.
|
**please report it privately to the maintainers**
|
||||||
|
rather than opening a publicly visible GitHub issue.
|
||||||
|
|
||||||
Please follow the instructions provided by github to
|
Please follow the instructions provided by github to [Privately report a security vulnerability][github-guidance-url].
|
||||||
[Privately report a security vulnerability](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability).
|
|
||||||
|
|
||||||
TL;DR: on Github, navigate to the project's "Security" tab then click on "Report a vulnerability".
|
> [!NOTE]
|
||||||
|
> On Github, navigate to the project's "Security" tab then click on "Report a vulnerability".
|
||||||
|
|
||||||
|
[codeql-url]: https://github.com/github/codeql
|
||||||
|
[trivy-url]: https://trivy.dev/docs/latest/getting-started
|
||||||
|
[govulncheck-url]: https://go.dev/blog/govulncheck
|
||||||
|
[github-guidance-url]: https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user