// ocirefsplainer demonstrates usage of google/go-containerregistry's name // package and the structure of OCI registry references. package main import ( "fmt" "github.com/google/go-containerregistry/pkg/name" ) func main() { refStrs := []string{ "us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/store@sha256:350da3b321a3daa415d0711c40b8a856c1ef1dcb95bdf017e9f5f1eb2d756382", "us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/store:latest", "us-east1-docker.pkg.dev/ret-edge-pltf-infra/warehouse/swim/dev/store:latest", } refs := make([]name.Reference, len(refStrs)) for i, r := range refStrs { refs[i], _ = name.ParseReference(r) } for _, r := range refs { fmt.Println("ref", r.String()) fmt.Println("registry", r.Context().RegistryStr()) fmt.Println("repo", r.Context().RepositoryStr()) fmt.Println("identifier", r.Identifier()) fmt.Println("name", r.Context().Name()) fmt.Println() } }