Skip to content

Commit 339aaf7

Browse files
Merge branch 'develop' into refactor-ipv6-tests
2 parents feb3851 + 6ebc3cc commit 339aaf7

File tree

15 files changed

+268
-77
lines changed

15 files changed

+268
-77
lines changed

assets/hello-routing/Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ GEM
55
eventmachine (1.2.7)
66
logger (1.7.0)
77
rack (3.1.16)
8-
thin (2.0.0)
8+
thin (2.0.1)
99
daemons (~> 1.0, >= 1.0.9)
1010
eventmachine (~> 1.0, >= 1.0.4)
1111
logger
-58.5 KB
Binary file not shown.
58.5 KB
Binary file not shown.

assets/syslog-drain-listener/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ go 1.23.0
44

55
toolchain go1.23.7
66

7-
require code.cloudfoundry.org/tlsconfig v0.29.0
7+
require code.cloudfoundry.org/tlsconfig v0.30.0

assets/syslog-drain-listener/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
code.cloudfoundry.org/tlsconfig v0.29.0 h1:t9//PpF7fNJi4mfmkzWd1F4fHpqREQUsQMIe4sj6AKU=
2-
code.cloudfoundry.org/tlsconfig v0.29.0/go.mod h1:YDHTq7ZNy8W26SinApuFKxlhg78xN28g86so8kRD6/Q=
1+
code.cloudfoundry.org/tlsconfig v0.30.0 h1:VWuCq5i2wLaXObY4KfybHMwjuy/Xbs6ocxFZMOCdAfw=
2+
code.cloudfoundry.org/tlsconfig v0.30.0/go.mod h1:8m66fcUFM0Z7xmxIq2yxfD66vNzw0wipmyY/aU3h/DQ=
33
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
44
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
55
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
66
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
77
github.com/square/certstrap v1.3.0 h1:N9P0ZRA+DjT8pq5fGDj0z3FjafRKnBDypP0QHpMlaAk=
88
github.com/square/certstrap v1.3.0/go.mod h1:wGZo9eE1B7WX2GKBn0htJ+B3OuRl2UsdCFySNooy9hU=
9-
go.step.sm/crypto v0.66.0 h1:9TW6BEguOtcS9NIjja9bDQ+j8OjhenU/F6lJfHjbXNU=
10-
go.step.sm/crypto v0.66.0/go.mod h1:anqGyvO/Px05D1mznHq4/a9wwP1I1DmMZvk+TWX5Dzo=
9+
go.step.sm/crypto v0.67.0 h1:1km9LmxMKG/p+mKa1R4luPN04vlJYnRLlLQrWv7egGU=
10+
go.step.sm/crypto v0.67.0/go.mod h1:+AoDpB0mZxbW/PmOXuwkPSpXRgaUaoIK+/Wx/HGgtAU=
1111
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
1212
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
1313
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# code.cloudfoundry.org/tlsconfig v0.29.0
1+
# code.cloudfoundry.org/tlsconfig v0.30.0
22
## explicit; go 1.23.0
33
code.cloudfoundry.org/tlsconfig

file_based_service_bindings/file_based_service_bindings.go

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,41 @@ var _ = FileBasedServiceBindingsDescribe("Enabling file based service binding fo
2626

2727
var callback = func(lifeCycle LifeCycle) {
2828
var appName, serviceName string
29+
2930
BeforeEach(func() {
3031
appName = random_name.CATSRandomName("APP")
3132
serviceName = generator.PrefixedRandomName("cats", "svin") // uppercase characters are not valid
3233
})
3334

34-
Context("When the file-based-vcap-services feature enabled", func() {
35-
It("It should store the VCAP_SERVICE binding information in file in the VCAP_SERVICES_FILE_PATH", func() {
36-
appGuid, serviceGuid := lifeCycle.Prepare(serviceName, appName, "file-based-vcap-services")
37-
services.ValidateFileBasedVcapServices(appName, serviceName, appGuid, serviceGuid)
35+
Context("When the file-based-vcap-services feature is enabled", func() {
36+
Context("Via API call", func() {
37+
It("It should store the VCAP_SERVICES binding information in a file in the VCAP_SERVICES_FILE_PATH", func() {
38+
appGuid, serviceGuid := Prepare(appName, serviceName, "file-based-vcap-services", lifeCycle)
39+
services.ValidateFileBasedVcapServices(appName, serviceName, appGuid, serviceGuid)
40+
})
41+
})
3842

43+
Context("Via manifest", func() {
44+
It("It should store the VCAP_SERVICES binding information in a file in the VCAP_SERVICES_FILE_PATH", func() {
45+
appGuid, serviceGuid := PrepareWithManifest(appName, serviceName, "file-based-vcap-services", lifeCycle)
46+
services.ValidateFileBasedVcapServices(appName, serviceName, appGuid, serviceGuid)
47+
})
3948
})
4049
})
4150

42-
Context("When the service-binding-k8s feature enabled", func() {
43-
It("It should have environment variable SERVICE_BINDING_ROOT which defines the location for the service binding", func() {
44-
appGuid, serviceGuid := lifeCycle.Prepare(serviceName, appName, "service-binding-k8s")
45-
services.ValidateServiceBindingK8s(appName, serviceName, appGuid, serviceGuid)
51+
Context("When the service-binding-k8s feature is enabled", func() {
52+
Context("Via API call", func() {
53+
It("It should store the binding information in files under the SERVICE_BINDING_ROOT path", func() {
54+
appGuid, serviceGuid := Prepare(appName, serviceName, "service-binding-k8s", lifeCycle)
55+
services.ValidateServiceBindingK8s(appName, serviceName, appGuid, serviceGuid)
56+
})
57+
})
58+
59+
Context("Via manifest", func() {
60+
It("It should store the binding information in files under the SERVICE_BINDING_ROOT path", func() {
61+
appGuid, serviceGuid := PrepareWithManifest(appName, serviceName, "service-binding-k8s", lifeCycle)
62+
services.ValidateServiceBindingK8s(appName, serviceName, appGuid, serviceGuid)
63+
})
4664
})
4765
})
4866

@@ -52,5 +70,4 @@ var callback = func(lifeCycle LifeCycle) {
5270
Eventually(cf.Cf("delete", appName, "-f")).Should(Exit(0))
5371
Eventually(cf.Cf("delete-service", serviceName, "-f").Wait()).Should(Exit(0))
5472
})
55-
5673
}

file_based_service_bindings/life_cycles.go

Lines changed: 97 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -10,77 +10,136 @@ import (
1010
"github.com/cloudfoundry/cf-test-helpers/v2/cf"
1111
. "github.com/onsi/gomega"
1212
. "github.com/onsi/gomega/gexec"
13+
"os"
14+
"path/filepath"
1315
)
1416

1517
type LifeCycle interface {
16-
Prepare(string, string, string) (string, string)
18+
CreateAppArgs() []string
19+
PushArgs() []string
1720
}
1821

1922
type BuildpackLifecycles struct{}
2023
type CNBLifecycles struct{}
2124
type DockerLifecycles struct{}
2225

23-
func (b *BuildpackLifecycles) Prepare(serviceName, appName, appFeatureFlag string) (string, string) {
24-
25-
Expect(cf.Cf("create-app", appName).Wait()).To(Exit(0))
26-
appGuid, serviceGuid := LifeCycleCommon(serviceName, appName, appFeatureFlag)
27-
28-
Expect(cf.Cf(app_helpers.CatnipWithArgs(
29-
appName,
30-
"-m", DEFAULT_MEMORY_LIMIT)...,
31-
).Wait(Config.CfPushTimeoutDuration())).To(Exit(0))
32-
33-
return appGuid, serviceGuid
34-
26+
func (b *BuildpackLifecycles) CreateAppArgs() []string {
27+
return []string{}
3528
}
3629

37-
func (c *CNBLifecycles) Prepare(serviceName, appName, appFeatureFlag string) (string, string) {
30+
func (b *BuildpackLifecycles) PushArgs() []string {
31+
return []string{
32+
"--buildpack", Config.GetBinaryBuildpackName(),
33+
"-p", assets.NewAssets().Catnip,
34+
"-c", "./catnip",
35+
}
36+
}
3837

39-
Expect(cf.Cf("create-app", appName, "--app-type", "cnb", "--buildpack", Config.GetGoBuildpackName()).Wait()).To(Exit(0))
40-
appGuid, serviceGuid := LifeCycleCommon(serviceName, appName, appFeatureFlag)
38+
func (c *CNBLifecycles) CreateAppArgs() []string {
39+
return []string{
40+
"--app-type", "cnb",
41+
"--buildpack", Config.GetCNBGoBuildpackName(),
42+
}
43+
}
4144

42-
Expect(cf.Cf(
43-
"push",
44-
appName,
45+
func (c *CNBLifecycles) PushArgs() []string {
46+
return []string{
4547
"--lifecycle", "cnb",
4648
"--buildpack", Config.GetCNBGoBuildpackName(),
47-
"-m", DEFAULT_MEMORY_LIMIT,
4849
"-p", assets.NewAssets().CatnipSrc,
49-
).Wait(Config.CfPushTimeoutDuration())).To(Exit(0))
50-
51-
return appGuid, serviceGuid
50+
}
5251
}
5352

54-
func (d *DockerLifecycles) Prepare(serviceName, appName, appFeatureFlag string) (string, string) {
55-
56-
Expect(cf.Cf("create-app", appName, "--app-type", "docker").Wait()).To(Exit(0))
57-
appGuid, serviceGuid := LifeCycleCommon(serviceName, appName, appFeatureFlag)
53+
func (d *DockerLifecycles) CreateAppArgs() []string {
54+
return []string{
55+
"--app-type", "docker",
56+
}
57+
}
5858

59-
Expect(cf.Cf(
60-
"push",
61-
appName,
59+
func (d *DockerLifecycles) PushArgs() []string {
60+
return []string{
6261
"--docker-image", Config.GetCatnipDockerAppImage(),
63-
"-m", DEFAULT_MEMORY_LIMIT,
64-
).Wait(Config.CfPushTimeoutDuration())).To(Exit(0))
65-
return appGuid, serviceGuid
62+
}
6663
}
6764

6865
const (
6966
TAGS = "list, of, tags"
7067
CREDS = `{"username": "admin", "password":"pa55woRD"}`
7168
)
7269

73-
func LifeCycleCommon(serviceName, appName, appFeatureFlag string) (string, string) {
70+
func Prepare(appName, serviceName, appFeatureFlag string, lifecycle LifeCycle) (string, string) {
71+
appGuid := CreateApp(appName, lifecycle.CreateAppArgs()...)
72+
serviceGuid := CreateUpsi(serviceName)
73+
BindUpsi(appName, serviceName)
74+
EnableFeatureViaAPI(appGuid, appFeatureFlag)
75+
76+
pushArgs := append([]string{appName}, lifecycle.PushArgs()...)
77+
Push(pushArgs...)
78+
79+
return appGuid, serviceGuid
80+
}
81+
82+
func PrepareWithManifest(appName, serviceName, appFeatureFlag string, lifecycle LifeCycle) (string, string) {
83+
serviceGuid := CreateUpsi(serviceName)
84+
manifestFile := CreateManifest(appName, serviceName, appFeatureFlag)
85+
86+
pushArgs := append([]string{"-f", manifestFile}, lifecycle.PushArgs()...)
87+
Push(pushArgs...)
88+
89+
return app_helpers.GetAppGuid(appName), serviceGuid
90+
}
91+
92+
func CreateApp(appName string, args ...string) string {
93+
createAppArgs := []string{
94+
"create-app", appName,
95+
}
96+
createAppArgs = append(createAppArgs, args...)
97+
Expect(cf.Cf(createAppArgs...).Wait()).To(Exit(0))
98+
appGuid := app_helpers.GetAppGuid(appName)
7499

100+
return appGuid
101+
}
102+
103+
func CreateUpsi(serviceName string) string {
75104
Expect(cf.Cf("create-user-provided-service", serviceName, "-p", CREDS, "-t", TAGS).Wait()).To(Exit(0))
76105
serviceGuid := services.GetServiceInstanceGuid(serviceName)
77106

78-
appGuid := app_helpers.GetAppGuid(appName)
107+
return serviceGuid
108+
}
79109

80-
appFeatureUrl := fmt.Sprintf("/v3/apps/%s/features/%s", appGuid, appFeatureFlag)
81-
Expect(cf.Cf("curl", appFeatureUrl, "-X", "PATCH", "-d", `{"enabled": true}`).Wait()).To(Exit(0))
110+
func CreateManifest(appName, serviceName, appFeatureFlag string) string {
111+
tmpdir, err := os.MkdirTemp(os.TempDir(), appName)
112+
Expect(err).ToNot(HaveOccurred())
113+
114+
manifestFile := filepath.Join(tmpdir, "manifest.yml")
115+
manifestContent := fmt.Sprintf(`---
116+
applications:
117+
- name: %s
118+
features:
119+
%s: true
120+
services:
121+
- %s
122+
`, appName, appFeatureFlag, serviceName)
123+
err = os.WriteFile(manifestFile, []byte(manifestContent), 0644)
124+
Expect(err).ToNot(HaveOccurred())
125+
126+
return manifestFile
127+
}
82128

129+
func BindUpsi(appName, serviceName string) {
83130
Expect(cf.Cf("bind-service", appName, serviceName).Wait()).To(Exit(0))
131+
}
84132

85-
return appGuid, serviceGuid
133+
func EnableFeatureViaAPI(appGuid, appFeatureFlag string) {
134+
appFeatureUrl := fmt.Sprintf("/v3/apps/%s/features/%s", appGuid, appFeatureFlag)
135+
Expect(cf.Cf("curl", appFeatureUrl, "-X", "PATCH", "-d", `{"enabled": true}`).Wait()).To(Exit(0))
136+
}
137+
138+
func Push(args ...string) {
139+
pushArgs := []string{
140+
"push",
141+
"-m", DEFAULT_MEMORY_LIMIT,
142+
}
143+
pushArgs = append(pushArgs, args...)
144+
Expect(cf.Cf(pushArgs...).Wait(Config.CfPushTimeoutDuration())).To(Exit(0))
86145
}

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ require (
88
code.cloudfoundry.org/archiver v0.38.0
99
code.cloudfoundry.org/go-log-cache/v3 v3.1.1
1010
code.cloudfoundry.org/go-loggregator/v10 v10.2.0
11-
code.cloudfoundry.org/tlsconfig v0.29.0
11+
code.cloudfoundry.org/tlsconfig v0.30.0
1212
github.com/cloudfoundry/cf-test-helpers/v2 v2.13.0
1313
github.com/cloudfoundry/noaa/v2 v2.5.0
1414
github.com/cloudfoundry/sonde-go v0.0.0-20230710164515-a0a43d1dbbf8
@@ -44,14 +44,14 @@ require (
4444
github.com/square/certstrap v1.3.0 // indirect
4545
github.com/ulikunitz/xz v0.5.10 // indirect
4646
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
47-
go.step.sm/crypto v0.66.0 // indirect
47+
go.step.sm/crypto v0.67.0 // indirect
4848
go.uber.org/automaxprocs v1.6.0 // indirect
4949
golang.org/x/net v0.41.0 // indirect
5050
golang.org/x/sys v0.33.0 // indirect
5151
golang.org/x/text v0.26.0 // indirect
5252
golang.org/x/tools v0.34.0 // indirect
5353
google.golang.org/genproto/googleapis/api v0.0.0-20250505200425-f936aa4a68b2 // indirect
54-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250512202823-5a2f75b736a9 // indirect
54+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
5555
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
5656
gopkg.in/yaml.v3 v3.0.1 // indirect
5757
)

go.sum

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ code.cloudfoundry.org/go-log-cache/v3 v3.1.1 h1:1DL5Ifs7WNIQBuMWUDac0f5IMGoP99gH
66
code.cloudfoundry.org/go-log-cache/v3 v3.1.1/go.mod h1:ofLDRs05U5ER8jt4lzRZbaK+CRQc5cKNc79M0E9mdCI=
77
code.cloudfoundry.org/go-loggregator/v10 v10.2.0 h1:0vUdIKvZb+eDoZ06xy/L0R0KIK9qH4S8CTmIqjylZEE=
88
code.cloudfoundry.org/go-loggregator/v10 v10.2.0/go.mod h1:5rfrVz/L3CLsWeKqXFcgfZLTvAhyL8ZR0bRquHfT4RM=
9-
code.cloudfoundry.org/tlsconfig v0.29.0 h1:t9//PpF7fNJi4mfmkzWd1F4fHpqREQUsQMIe4sj6AKU=
10-
code.cloudfoundry.org/tlsconfig v0.29.0/go.mod h1:YDHTq7ZNy8W26SinApuFKxlhg78xN28g86so8kRD6/Q=
9+
code.cloudfoundry.org/tlsconfig v0.30.0 h1:VWuCq5i2wLaXObY4KfybHMwjuy/Xbs6ocxFZMOCdAfw=
10+
code.cloudfoundry.org/tlsconfig v0.30.0/go.mod h1:8m66fcUFM0Z7xmxIq2yxfD66vNzw0wipmyY/aU3h/DQ=
1111
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
1212
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
1313
github.com/andybalholm/brotli v1.0.1 h1:KqhlKozYbRtJvsPrrEeXcO+N2l6NYT5A2QAFmSULpEc=
@@ -134,18 +134,18 @@ github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMx
134134
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
135135
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
136136
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
137-
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
138-
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
139-
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
140-
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
137+
go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg=
138+
go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E=
139+
go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE=
140+
go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs=
141141
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
142142
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
143143
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
144144
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
145-
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
146-
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
147-
go.step.sm/crypto v0.66.0 h1:9TW6BEguOtcS9NIjja9bDQ+j8OjhenU/F6lJfHjbXNU=
148-
go.step.sm/crypto v0.66.0/go.mod h1:anqGyvO/Px05D1mznHq4/a9wwP1I1DmMZvk+TWX5Dzo=
145+
go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w=
146+
go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA=
147+
go.step.sm/crypto v0.67.0 h1:1km9LmxMKG/p+mKa1R4luPN04vlJYnRLlLQrWv7egGU=
148+
go.step.sm/crypto v0.67.0/go.mod h1:+AoDpB0mZxbW/PmOXuwkPSpXRgaUaoIK+/Wx/HGgtAU=
149149
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
150150
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
151151
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -200,8 +200,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
200200
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
201201
google.golang.org/genproto/googleapis/api v0.0.0-20250505200425-f936aa4a68b2 h1:vPV0tzlsK6EzEDHNNH5sa7Hs9bd7iXR7B1tSiPepkV0=
202202
google.golang.org/genproto/googleapis/api v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:pKLAc5OolXC3ViWGI62vvC0n10CpwAtRcTNCFwTKBEw=
203-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250512202823-5a2f75b736a9 h1:IkAfh6J/yllPtpYFU0zZN1hUPYdT0ogkBT/9hMxHjvg=
204-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250512202823-5a2f75b736a9/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
203+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
204+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
205205
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
206206
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
207207
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=

0 commit comments

Comments
 (0)