github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/src/pkg/zoci/fetch.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: 2021-Present The Jackal Authors 3 4 // Package zoci contains functions for interacting with Jackal packages stored in OCI registries. 5 package zoci 6 7 import ( 8 "context" 9 10 "github.com/Racer159/jackal/src/pkg/layout" 11 "github.com/Racer159/jackal/src/types" 12 "github.com/defenseunicorns/pkg/oci" 13 ocispec "github.com/opencontainers/image-spec/specs-go/v1" 14 ) 15 16 // FetchJackalYAML fetches the jackal.yaml file from the remote repository. 17 func (r *Remote) FetchJackalYAML(ctx context.Context) (pkg types.JackalPackage, err error) { 18 manifest, err := r.FetchRoot(ctx) 19 if err != nil { 20 return pkg, err 21 } 22 return oci.FetchYAMLFile[types.JackalPackage](ctx, r.FetchLayer, manifest, layout.JackalYAML) 23 } 24 25 // FetchImagesIndex fetches the images/index.json file from the remote repository. 26 func (r *Remote) FetchImagesIndex(ctx context.Context) (index *ocispec.Index, err error) { 27 manifest, err := r.FetchRoot(ctx) 28 if err != nil { 29 return nil, err 30 } 31 return oci.FetchJSONFile[*ocispec.Index](ctx, r.FetchLayer, manifest, layout.IndexPath) 32 }