Skip to content

Commit 15cdfac

Browse files
committed
image: add attestationchain resolving to resolvesourcemeta
Attestation chain can be used by the client to verify signature identity of the image. Signed-off-by: Tonis Tiigi <[email protected]>
1 parent 49629be commit 15cdfac

File tree

26 files changed

+713
-359
lines changed

26 files changed

+713
-359
lines changed

client/client_test.go

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ var allTests = []func(t *testing.T, sb integration.Sandbox){
250250
testHTTPResolveMetaReuse,
251251
testHTTPResolveMultiBuild,
252252
testGitResolveMutatedSource,
253+
testImageResolveAttestationChainRequiresNetwork,
253254
}
254255

255256
func TestIntegration(t *testing.T) {
@@ -12249,6 +12250,94 @@ func testHTTPResolveSourceMetadata(t *testing.T, sb integration.Sandbox) {
1224912250
require.NoError(t, err)
1225012251
}
1225112252

12253+
func testImageResolveAttestationChainRequiresNetwork(t *testing.T, sb integration.Sandbox) {
12254+
// this test temporarily requires direct registry access as the integration test
12255+
// mirroring system does not support mirroring attestation chains yet.
12256+
// Support is coming in future buildx release.
12257+
ctx := sb.Context()
12258+
c, err := New(ctx, sb.Address())
12259+
require.NoError(t, err)
12260+
defer c.Close()
12261+
12262+
amd64, err := platforms.Parse("linux/amd64")
12263+
require.NoError(t, err)
12264+
12265+
_, err = c.Build(ctx, SolveOpt{}, "test", func(ctx context.Context, c gateway.Client) (*gateway.Result, error) {
12266+
const rootDigest = "sha256:4e91099af134f4b1f509fecbd1a55981dfff18d8029d6782e28413210ef468b7"
12267+
const imageDigest = "sha256:d2f0b39234a66c3d58f24200d3fda9e4e3d2263c09f9b7286a826ab639713047"
12268+
const attestationDigest = "sha256:fb4c46b14f52d1bf790f593921c52dddc698fc6780792fb8469fc60efc0e609b"
12269+
const sigDigest = "sha256:bd0a6b088440ba9838e8eec79e736128fe52afce934578eae30ca8675f6d3142"
12270+
12271+
id := "registry-1-stage.docker.io/docker/github-builder-test@" + rootDigest
12272+
md, err := c.ResolveSourceMetadata(ctx, &pb.SourceOp{
12273+
Identifier: "docker-image://" + id,
12274+
}, sourceresolver.Opt{
12275+
ImageOpt: &sourceresolver.ResolveImageOpt{
12276+
NoConfig: true,
12277+
AttestationChain: true,
12278+
Platform: &amd64,
12279+
},
12280+
})
12281+
if err != nil {
12282+
return nil, err
12283+
}
12284+
require.Equal(t, rootDigest, md.Image.Digest.String())
12285+
require.Nil(t, md.Image.Config)
12286+
require.NotNil(t, md.Image)
12287+
require.NotNil(t, md.Image.AttestationChain)
12288+
ac := md.Image.AttestationChain
12289+
require.Equal(t, rootDigest, ac.Root.String())
12290+
require.Equal(t, imageDigest, ac.ImageManifest.String())
12291+
require.Equal(t, attestationDigest, ac.AttestationManifest.String())
12292+
require.Len(t, ac.SignatureManifests, 1)
12293+
require.Equal(t, sigDigest, ac.SignatureManifests[0].String())
12294+
12295+
desc := ac.Blobs[ac.Root]
12296+
require.Equal(t, rootDigest, desc.Descriptor.Digest.String())
12297+
require.Len(t, desc.Data, int(desc.Descriptor.Size))
12298+
require.Equal(t, ocispecs.MediaTypeImageIndex, desc.Descriptor.MediaType)
12299+
chk := digest.FromBytes(desc.Data)
12300+
require.Equal(t, rootDigest, chk.String())
12301+
12302+
desc = ac.Blobs[ac.ImageManifest]
12303+
require.Equal(t, imageDigest, desc.Descriptor.Digest.String())
12304+
require.Len(t, desc.Data, int(desc.Descriptor.Size))
12305+
require.Equal(t, ocispecs.MediaTypeImageManifest, desc.Descriptor.MediaType)
12306+
chk = digest.FromBytes(desc.Data)
12307+
require.Equal(t, imageDigest, chk.String())
12308+
12309+
desc = ac.Blobs[ac.AttestationManifest]
12310+
require.Equal(t, attestationDigest, desc.Descriptor.Digest.String())
12311+
require.Equal(t, ocispecs.MediaTypeImageManifest, desc.Descriptor.MediaType)
12312+
require.Len(t, desc.Data, int(desc.Descriptor.Size))
12313+
chk = digest.FromBytes(desc.Data)
12314+
require.Equal(t, attestationDigest, chk.String())
12315+
12316+
desc = ac.Blobs[ac.SignatureManifests[0]]
12317+
require.Equal(t, sigDigest, desc.Descriptor.Digest.String())
12318+
require.Equal(t, ocispecs.MediaTypeImageManifest, desc.Descriptor.MediaType)
12319+
require.Len(t, desc.Data, int(desc.Descriptor.Size))
12320+
chk = digest.FromBytes(desc.Data)
12321+
require.Equal(t, sigDigest, chk.String())
12322+
12323+
var sigMfst ocispecs.Manifest
12324+
err = json.Unmarshal(ac.Blobs[ac.SignatureManifests[0]].Data, &sigMfst)
12325+
require.NoError(t, err)
12326+
require.Equal(t, 1, len(sigMfst.Layers))
12327+
sigLayer := sigMfst.Layers[0]
12328+
sigDesc := ac.Blobs[digest.Digest(sigLayer.Digest)]
12329+
require.Equal(t, sigLayer.Digest, sigDesc.Descriptor.Digest)
12330+
require.Len(t, sigDesc.Data, int(sigDesc.Descriptor.Size))
12331+
require.Equal(t, "application/vnd.dev.sigstore.bundle.v0.3+json", sigDesc.Descriptor.MediaType)
12332+
chk = digest.FromBytes(sigDesc.Data)
12333+
require.Equal(t, sigLayer.Digest, chk)
12334+
12335+
require.Len(t, md.Image.AttestationChain.Blobs, 5)
12336+
return nil, nil
12337+
}, nil)
12338+
require.NoError(t, err)
12339+
}
12340+
1225212341
func testHTTPPruneAfterCacheKey(t *testing.T, sb integration.Sandbox) {
1225312342
// this test depends on hitting race condition in internal functions.
1225412343
// If debugging and expecting failure you can add small sleep in beginning of source/http.Exec() to hit reliably

client/llb/sourceresolver/types.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ type MetaResponse struct {
3939
}
4040

4141
type ResolveImageOpt struct {
42-
Platform *ocispecs.Platform
43-
ResolveMode string
42+
Platform *ocispecs.Platform
43+
ResolveMode string
44+
NoConfig bool
45+
AttestationChain bool
4446
}
4547

4648
type ResolveImageResponse struct {

frontend/gateway/gateway.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,10 @@ func (lbf *llbBridgeForwarder) ResolveSourceMeta(ctx context.Context, req *pb.Re
636636
ResolveMode: req.ResolveMode,
637637
Platform: platform,
638638
}
639+
if req.Image != nil {
640+
resolveopt.ImageOpt.NoConfig = req.Image.NoConfig
641+
resolveopt.ImageOpt.AttestationChain = req.Image.AttestationChain
642+
}
639643
resolveopt.OCILayoutOpt = &sourceresolver.ResolveOCILayoutOpt{
640644
Platform: platform,
641645
}
@@ -659,6 +663,9 @@ func (lbf *llbBridgeForwarder) ResolveSourceMeta(ctx context.Context, req *pb.Re
659663
Digest: string(resp.Image.Digest),
660664
Config: resp.Image.Config,
661665
}
666+
if resp.Image.AttestationChain != nil {
667+
r.Image.AttestationChain = toPBAttestationChain(resp.Image.AttestationChain)
668+
}
662669
}
663670
if resp.Git != nil {
664671
r.Git = &pb.ResolveSourceGitResponse{
@@ -1698,6 +1705,33 @@ func getCaps(label string) map[string]struct{} {
16981705
return out
16991706
}
17001707

1708+
func toPBAttestationChain(ac *sourceresolver.AttestationChain) *pb.AttestationChain {
1709+
if ac == nil {
1710+
return nil
1711+
}
1712+
out := &pb.AttestationChain{
1713+
Root: string(ac.Root),
1714+
ImageManifest: string(ac.ImageManifest),
1715+
AttestationManifest: string(ac.AttestationManifest),
1716+
Blobs: make(map[string]*pb.Blob),
1717+
}
1718+
for _, s := range ac.SignatureManifests {
1719+
out.SignatureManifests = append(out.SignatureManifests, string(s))
1720+
}
1721+
for k, v := range ac.Blobs {
1722+
out.Blobs[k.String()] = &pb.Blob{
1723+
Descriptor_: &pb.Descriptor{
1724+
MediaType: v.Descriptor.MediaType,
1725+
Size: v.Descriptor.Size,
1726+
Digest: string(v.Descriptor.Digest),
1727+
Annotations: maps.Clone(v.Descriptor.Annotations),
1728+
},
1729+
Data: v.Data,
1730+
}
1731+
}
1732+
return out
1733+
}
1734+
17011735
func addCapsForKnownFrontends(caps map[string]struct{}, dgst digest.Digest) {
17021736
// these frontends were built without caps detection but do support inputs
17031737
defaults := map[digest.Digest]struct{}{

frontend/gateway/grpcclient/client.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,13 @@ func (c *grpcClient) ResolveSourceMetadata(ctx context.Context, op *opspb.Source
522522
LogName: opt.LogName,
523523
SourcePolicies: opt.SourcePolicies,
524524
}
525+
if opt.ImageOpt != nil {
526+
req.Image = &pb.ResolveSourceImageRequest{
527+
NoConfig: opt.ImageOpt.NoConfig,
528+
AttestationChain: opt.ImageOpt.AttestationChain,
529+
}
530+
}
531+
525532
if opt.GitOpt != nil {
526533
req.Git = &pb.ResolveSourceGitRequest{
527534
ReturnObject: opt.GitOpt.ReturnObject,

go.mod

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ require (
5252
github.com/moby/go-archive v0.1.0
5353
github.com/moby/locker v1.0.1
5454
github.com/moby/patternmatcher v0.6.0
55+
github.com/moby/policy-helpers v0.0.0-20251105011237-bcaa71c99f14
5556
github.com/moby/profiles/seccomp v0.1.0
5657
github.com/moby/sys/mountinfo v0.7.2
5758
github.com/moby/sys/reexec v0.1.0
@@ -102,7 +103,7 @@ require (
102103
golang.org/x/crypto v0.42.0
103104
golang.org/x/exp v0.0.0-20250911091902-df9299821621
104105
golang.org/x/mod v0.29.0
105-
golang.org/x/net v0.43.0
106+
golang.org/x/net v0.44.0
106107
golang.org/x/sync v0.17.0
107108
golang.org/x/sys v0.37.0
108109
golang.org/x/time v0.14.0
@@ -145,6 +146,7 @@ require (
145146
github.com/dimchansky/utfbom v1.1.1 // indirect
146147
github.com/docker/docker-credential-helpers v0.9.3 // indirect
147148
github.com/docker/go-metrics v0.0.1 // indirect
149+
github.com/fatih/color v1.18.0 // indirect
148150
github.com/felixge/fgprof v0.9.3 // indirect
149151
github.com/felixge/httpsnoop v1.0.4 // indirect
150152
github.com/fsnotify/fsnotify v1.9.0 // indirect
@@ -159,6 +161,7 @@ require (
159161
github.com/hanwen/go-fuse/v2 v2.8.0 // indirect
160162
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
161163
github.com/kylelemons/godebug v1.1.0 // indirect
164+
github.com/mattn/go-colorable v0.1.14 // indirect
162165
github.com/moby/sys/capability v0.4.0 // indirect
163166
github.com/moby/sys/mount v0.3.4 // indirect
164167
github.com/moby/sys/sequential v0.6.0 // indirect
@@ -176,7 +179,7 @@ require (
176179
github.com/vbatts/tar-split v0.12.1 // indirect
177180
github.com/vishvananda/netns v0.0.5 // indirect
178181
go.opencensus.io v0.24.0 // indirect
179-
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
182+
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
180183
go.opentelemetry.io/otel/metric v1.38.0 // indirect
181184
go.yaml.in/yaml/v2 v2.4.2 // indirect
182185
golang.org/x/text v0.29.0 // indirect
@@ -210,3 +213,11 @@ tool (
210213
google.golang.org/grpc/cmd/protoc-gen-go-grpc
211214
google.golang.org/protobuf/cmd/protoc-gen-go
212215
)
216+
217+
replace (
218+
// These branches contain cherry-picked patches proposed to upstream repos for reducing the imported dependency set.
219+
// They are fully backwards compatible and code in this module works the same way with or without these patches.
220+
github.com/sigstore/rekor => github.com/tonistiigi/rekor v0.0.0-20251105052018-99cef2885dd7
221+
github.com/sigstore/rekor-tiles => github.com/tonistiigi/rekor-tiles v0.0.0-20251105010948-ccca386fbeb0
222+
github.com/sigstore/sigstore => github.com/tonistiigi/sigstore v0.0.0-20251105013205-e8108809ccc2
223+
)

go.sum

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24
7777
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
7878
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
7979
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
80+
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
8081
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
8182
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
8283
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
@@ -160,8 +161,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF
160161
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
161162
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
162163
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
163-
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
164-
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
164+
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
165+
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
165166
github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g=
166167
github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw=
167168
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
@@ -264,8 +265,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
264265
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
265266
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
266267
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
267-
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
268-
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
268+
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
269+
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
269270
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
270271
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
271272
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
@@ -279,6 +280,8 @@ github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
279280
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
280281
github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk=
281282
github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
283+
github.com/moby/policy-helpers v0.0.0-20251105011237-bcaa71c99f14 h1:JO22uXMy3CN7wh7A/wrtYQWV1WYQMg2gh6d8YO325k4=
284+
github.com/moby/policy-helpers v0.0.0-20251105011237-bcaa71c99f14/go.mod h1:HJfK0E8dR+Jpk5anJ3oADg2dRSom1gJK17sqEiiMS7w=
282285
github.com/moby/profiles/seccomp v0.1.0 h1:kVf1lc5ytNB1XPxEdZUVF+oPpbBYJHR50eEvPt/9k8A=
283286
github.com/moby/profiles/seccomp v0.1.0/go.mod h1:Kqk57vxH6/wuOc5bmqRiSXJ6iEz8Pvo3LQRkv0ytFWs=
284287
github.com/moby/sys/capability v0.4.0 h1:4D4mI6KlNtWMCM1Z/K0i7RV1FkX+DBDHKVJpCndZoHk=
@@ -356,8 +359,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
356359
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
357360
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
358361
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
359-
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
360-
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
362+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
363+
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
361364
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
362365
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
363366
github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU=
@@ -425,8 +428,8 @@ go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo=
425428
go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E=
426429
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
427430
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
428-
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
429-
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
431+
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
432+
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
430433
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 h1:q4XOmH/0opmeuJtPsbFNivyl7bCt7yRBbeEm2sC/XtQ=
431434
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0/go.mod h1:snMWehoOh2wsEwnvvwtDyFCxVeDAODenXHtn5vzrKjo=
432435
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 h1:lREC4C0ilyP4WibDhQ7Gg2ygAQFP8oR07Fst/5cafwI=
@@ -494,8 +497,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
494497
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
495498
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
496499
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
497-
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
498-
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
500+
golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
501+
golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
499502
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
500503
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
501504
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

0 commit comments

Comments
 (0)