...

Source file src/edge-infra.dev/cmd/x/ocirefsplainer/main.go

Documentation: edge-infra.dev/cmd/x/ocirefsplainer

     1  // ocirefsplainer demonstrates usage of google/go-containerregistry's name
     2  // package and the structure of OCI registry references.
     3  package main
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/google/go-containerregistry/pkg/name"
     9  )
    10  
    11  func main() {
    12  	refStrs := []string{
    13  		"us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/store@sha256:350da3b321a3daa415d0711c40b8a856c1ef1dcb95bdf017e9f5f1eb2d756382",
    14  		"us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/store:latest",
    15  		"us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/swim/dev/store:latest",
    16  	}
    17  
    18  	refs := make([]name.Reference, len(refStrs))
    19  	for i, r := range refStrs {
    20  		refs[i], _ = name.ParseReference(r)
    21  	}
    22  
    23  	for _, r := range refs {
    24  		fmt.Println("ref", r.String())
    25  		fmt.Println("registry", r.Context().RegistryStr())
    26  		fmt.Println("repo", r.Context().RepositoryStr())
    27  		fmt.Println("identifier", r.Identifier())
    28  		fmt.Println("name", r.Context().Name())
    29  		fmt.Println()
    30  	}
    31  }
    32  

View as plain text