@@ -40,7 +40,7 @@ import (
40
40
const (
41
41
exampleRepositoryName = "example"
42
42
exampleTag = "latest"
43
- exampleManifest = "Example manifest content"
43
+ exampleConfig = "Example config content"
44
44
exampleLayer = "Example layer content"
45
45
exampleUploadUUid = "0bc84d80-837c-41d9-824e-1907463c53b3"
46
46
ManifestDigest = "sha256:0b696106ecd0654e031f19e0a8cbd1aee4ad457d7c9cea881f07b12a930cd307"
@@ -49,12 +49,19 @@ const (
49
49
)
50
50
51
51
var (
52
- exampleLayerDigest = digest .FromBytes ([]byte (exampleLayer )).String ()
53
- exampleManifestDigest = digest .FromBytes ([]byte (exampleManifest )).String ()
54
- exampleManifestDescriptor = ocispec.Descriptor {
55
- MediaType : ocispec .MediaTypeImageManifest ,
56
- Digest : digest .Digest (exampleManifestDigest ),
57
- Size : int64 (len (exampleManifest ))}
52
+ exampleLayerDescriptor = content .NewDescriptorFromBytes (ocispec .MediaTypeImageLayer , []byte (exampleLayer ))
53
+ exampleLayerDigest = exampleLayerDescriptor .Digest .String ()
54
+ exampleManifest , _ = json .Marshal (ocispec.Manifest {
55
+ Versioned : specs.Versioned {
56
+ SchemaVersion : 2 , // historical value. does not pertain to OCI or docker version
57
+ },
58
+ Config : content .NewDescriptorFromBytes (ocispec .MediaTypeImageConfig , []byte (exampleConfig )),
59
+ Layers : []ocispec.Descriptor {
60
+ exampleLayerDescriptor ,
61
+ },
62
+ })
63
+ exampleManifestDescriptor = content .NewDescriptorFromBytes (ocispec .MediaTypeImageManifest , exampleManifest )
64
+ exampleManifestDigest = exampleManifestDescriptor .Digest .String ()
58
65
exampleSignatureManifest , _ = json .Marshal (ocispec.Artifact {
59
66
MediaType : ocispec .MediaTypeArtifactManifest ,
60
67
ArtifactType : "example/signature" ,
@@ -322,8 +329,8 @@ func ExampleRepository_Resolve_byTag() {
322
329
323
330
// Output:
324
331
// application/vnd.oci.image.manifest.v1+json
325
- // sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b
326
- // 24
332
+ // sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7
333
+ // 337
327
334
}
328
335
329
336
// ExampleRepository_Resolve_byDigest gives example snippets for resolving a digest to a manifest descriptor.
@@ -333,7 +340,7 @@ func ExampleRepository_Resolve_byDigest() {
333
340
panic (err )
334
341
}
335
342
ctx := context .Background ()
336
- exampleDigest := "sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b "
343
+ exampleDigest := "sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 "
337
344
descriptor , err := repo .Resolve (ctx , exampleDigest )
338
345
if err != nil {
339
346
panic (err )
@@ -345,8 +352,8 @@ func ExampleRepository_Resolve_byDigest() {
345
352
346
353
// Output:
347
354
// application/vnd.oci.image.manifest.v1+json
348
- // sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b
349
- // 24
355
+ // sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7
356
+ // 337
350
357
}
351
358
352
359
// ExampleRepository_Fetch_byTag gives example snippets for downloading a manifest by tag.
@@ -375,7 +382,7 @@ func ExampleRepository_Fetch_manifestByTag() {
375
382
fmt .Println (string (pulledBlob ))
376
383
377
384
// Output:
378
- // Example manifest content
385
+ // {"schemaVersion":2,"config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:569224ae188c06e97b9fcadaeb2358fb0fb7c4eb105d49aee2620b2719abea43","size":22},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar","digest":"sha256:ef79e47691ad1bc702d7a256da6323ec369a8fc3159b4f1798a47136f3b38c10","size":21}]}
379
386
}
380
387
381
388
// ExampleRepository_Fetch_manifestByDigest gives example snippets for downloading a manifest by digest.
@@ -386,7 +393,7 @@ func ExampleRepository_Fetch_manifestByDigest() {
386
393
}
387
394
ctx := context .Background ()
388
395
389
- exampleDigest := "sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b "
396
+ exampleDigest := "sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 "
390
397
// resolve the blob descriptor to obtain the size of the blob
391
398
descriptor , err := repo .Resolve (ctx , exampleDigest )
392
399
if err != nil {
@@ -404,7 +411,7 @@ func ExampleRepository_Fetch_manifestByDigest() {
404
411
405
412
fmt .Println (string (pulled ))
406
413
// Output:
407
- // Example manifest content
414
+ // {"schemaVersion":2,"config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:569224ae188c06e97b9fcadaeb2358fb0fb7c4eb105d49aee2620b2719abea43","size":22},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar","digest":"sha256:ef79e47691ad1bc702d7a256da6323ec369a8fc3159b4f1798a47136f3b38c10","size":21}]}
408
415
}
409
416
410
417
// ExampleRepository_Fetch_artifactReferenceManifest gives an example of fetching
@@ -443,8 +450,8 @@ func ExampleRepository_Fetch_artifactReferenceManifest() {
443
450
panic (err )
444
451
}
445
452
// Output:
446
- // {"mediaType":"application/vnd.oci.artifact.manifest.v1+json","artifactType":"example/SBoM","subject":{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b ","size":24 }}
447
- // {"mediaType":"application/vnd.oci.artifact.manifest.v1+json","artifactType":"example/signature","subject":{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b ","size":24 }}
453
+ // {"mediaType":"application/vnd.oci.artifact.manifest.v1+json","artifactType":"example/SBoM","subject":{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 ","size":337 }}
454
+ // {"mediaType":"application/vnd.oci.artifact.manifest.v1+json","artifactType":"example/signature","subject":{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 ","size":337 }}
448
455
}
449
456
450
457
// ExampleRepository_fetchArtifactBlobs gives an example of pulling the blobs
@@ -457,7 +464,7 @@ func ExampleRepository_fetchArtifactBlobs() {
457
464
ctx := context .Background ()
458
465
459
466
// 1. Fetch the artifact manifest by digest.
460
- exampleDigest := "sha256:1907bb31b7add4d47d74d2c5c1c10d67b757a996f8e8186e562113bc9879b1a3 "
467
+ exampleDigest := "sha256:f3550fd0947402d140fd0470702abc92c69f7e9b08d5ca2438f42f8a0ea3fd97 "
461
468
descriptor , rc , err := repo .FetchReference (ctx , exampleDigest )
462
469
if err != nil {
463
470
panic (err )
@@ -484,7 +491,7 @@ func ExampleRepository_fetchArtifactBlobs() {
484
491
}
485
492
486
493
// Output:
487
- // {"mediaType":"application/vnd.oci.artifact.manifest.v1+json","artifactType":"example/manifest","blobs":[{"mediaType":"application/tar","digest":"sha256:8d6497c94694a292c04f85cd055d8b5c03eda835dd311e20dfbbf029ff9748cc","size":20}],"subject":{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b ","size":24 }}
494
+ // {"mediaType":"application/vnd.oci.artifact.manifest.v1+json","artifactType":"example/manifest","blobs":[{"mediaType":"application/tar","digest":"sha256:8d6497c94694a292c04f85cd055d8b5c03eda835dd311e20dfbbf029ff9748cc","size":20}],"subject":{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 ","size":337 }}
488
495
// example blob content
489
496
}
490
497
@@ -510,7 +517,7 @@ func ExampleRepository_FetchReference_manifestByTag() {
510
517
fmt .Println (string (pulledBlob ))
511
518
512
519
// Output:
513
- // Example manifest content
520
+ // {"schemaVersion":2,"config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:569224ae188c06e97b9fcadaeb2358fb0fb7c4eb105d49aee2620b2719abea43","size":22},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar","digest":"sha256:ef79e47691ad1bc702d7a256da6323ec369a8fc3159b4f1798a47136f3b38c10","size":21}]}
514
521
}
515
522
516
523
// ExampleRepository_FetchReference_manifestByDigest gives example snippets for downloading a manifest by digest.
@@ -521,7 +528,7 @@ func ExampleRepository_FetchReference_manifestByDigest() {
521
528
}
522
529
ctx := context .Background ()
523
530
524
- exampleDigest := "sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b "
531
+ exampleDigest := "sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 "
525
532
descriptor , rc , err := repo .FetchReference (ctx , exampleDigest )
526
533
if err != nil {
527
534
panic (err )
@@ -535,7 +542,7 @@ func ExampleRepository_FetchReference_manifestByDigest() {
535
542
fmt .Println (string (pulled ))
536
543
537
544
// Output:
538
- // Example manifest content
545
+ // {"schemaVersion":2,"config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:569224ae188c06e97b9fcadaeb2358fb0fb7c4eb105d49aee2620b2719abea43","size":22},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar","digest":"sha256:ef79e47691ad1bc702d7a256da6323ec369a8fc3159b4f1798a47136f3b38c10","size":21}]}
539
546
}
540
547
541
548
// ExampleRepository_Fetch_layer gives example snippets for downloading a layer blob by digest.
@@ -593,7 +600,7 @@ func ExampleRepository_Tag() {
593
600
}
594
601
ctx := context .Background ()
595
602
596
- exampleDigest := "sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b "
603
+ exampleDigest := "sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 "
597
604
descriptor , err := repo .Resolve (ctx , exampleDigest )
598
605
if err != nil {
599
606
panic (err )
@@ -623,7 +630,7 @@ func ExampleRepository_TagReference() {
623
630
}
624
631
625
632
// tag a manifest referenced by the exampleDigest below
626
- exampleDigest := "sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b "
633
+ exampleDigest := "sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 "
627
634
tag := "latest"
628
635
err = oras .Tag (ctx , repo , exampleDigest , tag )
629
636
if err != nil {
@@ -685,9 +692,9 @@ func Example_pullByTag() {
685
692
fmt .Println (string (pulledBlob ))
686
693
687
694
// Output:
688
- // sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b
689
- // 24
690
- // Example manifest content
695
+ // sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7
696
+ // 337
697
+ // {"schemaVersion":2,"config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:569224ae188c06e97b9fcadaeb2358fb0fb7c4eb105d49aee2620b2719abea43","size":22},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar","digest":"sha256:ef79e47691ad1bc702d7a256da6323ec369a8fc3159b4f1798a47136f3b38c10","size":21}]}
691
698
}
692
699
693
700
func Example_pullByDigest () {
@@ -697,7 +704,7 @@ func Example_pullByDigest() {
697
704
}
698
705
ctx := context .Background ()
699
706
700
- exampleDigest := "sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b "
707
+ exampleDigest := "sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7 "
701
708
// 1. resolve the descriptor
702
709
descriptor , err := repo .Resolve (ctx , exampleDigest )
703
710
if err != nil {
@@ -714,9 +721,9 @@ func Example_pullByDigest() {
714
721
fmt .Println (string (pulledBlob ))
715
722
716
723
// Output:
717
- // sha256:00e5ffa7d914b4e6aa3f1a324f37df0625ccc400be333deea5ecaa199f9eff5b
718
- // 24
719
- // Example manifest content
724
+ // sha256:b53dc03a49f383ba230d8ac2b78a9c4aec132e4a9f36cc96524df98163202cc7
725
+ // 337
726
+ // {"schemaVersion":2,"config":{"mediaType":"application/vnd.oci.image.config.v1+json","digest":"sha256:569224ae188c06e97b9fcadaeb2358fb0fb7c4eb105d49aee2620b2719abea43","size":22},"layers":[{"mediaType":"application/vnd.oci.image.layer.v1.tar","digest":"sha256:ef79e47691ad1bc702d7a256da6323ec369a8fc3159b4f1798a47136f3b38c10","size":21}]}
720
727
}
721
728
722
729
// Example_pushAndTag gives example snippet of pushing an OCI image with a tag.
0 commit comments