registry

package
v0.0.0-test Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2024 License: Apache-2.0 Imports: 19 Imported by: 4

Documentation

Index

Constants

View Source
const (
	MediaTypeOCIManifest    = "application/vnd.oci.image.manifest.v1+json"
	MediaTypeOCIIndex       = "application/vnd.oci.image.index.v1+json"
	MediaTypeOCIImageConfig = "application/vnd.oci.image.config.v1+json"
	MediaTypeContainerImage = "application/vnd.docker.container.image.v1+json"

	MediaTypeOCIMissingManifest = "Accept header does not support OCI manifests"
	MediaTypeOCIMissingIndex    = "Accept header does not support OCI indexes"
)
View Source
const (
	ErrorNone uint = iota
	ErrorCertificate
	ErrorAuthentication
	ErrorUrl
	ErrorUnknown
)

Variables

View Source
var (
	ErrNoMorePages = errors.New("No more pages")
)

Functions

This section is empty.

Types

type AuthorizationChallenge

type AuthorizationChallenge struct {
	Scheme     string
	Parameters map[string]string
}

AuthorizationChallenge carries information from a WWW-Authenticate response header.

type BasicTransport

type BasicTransport struct {
	Transport http.RoundTripper
	URL       string
	Username  string
	Password  string
}

func (*BasicTransport) RoundTrip

func (t *BasicTransport) RoundTrip(req *http.Request) (*http.Response, error)

type ErrorTransport

type ErrorTransport struct {
	Transport http.RoundTripper
}

func (*ErrorTransport) RoundTrip

func (t *ErrorTransport) RoundTrip(request *http.Request) (*http.Response, error)

type HttpStatusError

type HttpStatusError struct {
	Response *http.Response
	Body     []byte // Copied from `Response.Body` to avoid problems with unclosed bodies later. Nobody calls `err.Response.Body.Close()`, ever.
}

func (*HttpStatusError) Error

func (err *HttpStatusError) Error() string

type ManifestInfo

type ManifestInfo struct {
	SignedManifest *manifestV1.SignedManifest
	Digest         string
	Author         string
	Envs           []string
	Labels         map[string]string
	Cmds           []string
	EmptyLayers    []bool
	Created        time.Time
}

type ManifestRequestType

type ManifestRequestType int
const (
	ManifestRequest_Default ManifestRequestType = iota
	ManifestRequest_CosignSignature
)

type Registry

type Registry struct {
	URL    string
	Client *httptrace.TraceClient
}

func New

func New(registryUrl, token, username, password, proxy string, trace httptrace.HTTPTrace) (*Registry, uint, error)

* Create a new Registry

func (*Registry) DownloadLayer

func (registry *Registry) DownloadLayer(ctx context.Context, repository string, digest digest.Digest) (io.ReadCloser, int64, error)

func (*Registry) FetchTagsPaginated

func (r *Registry) FetchTagsPaginated(url, repository string) ([]string, error)

func (*Registry) HasLayer

func (registry *Registry) HasLayer(repository string, digest digest.Digest) (bool, error)

func (*Registry) ImageConfigSpecV1

func (r *Registry) ImageConfigSpecV1(ctx context.Context, repository string, reference digest.Digest) (*ManifestInfo, error)

func (*Registry) LayerMetadata

func (registry *Registry) LayerMetadata(repository string, digest digest.Digest) (distribution.Descriptor, error)

func (*Registry) Manifest

func (r *Registry) Manifest(ctx context.Context, repository, reference string) (*ManifestInfo, error)

func (*Registry) ManifestRequest

func (r *Registry) ManifestRequest(ctx context.Context, repository, reference string, schema int, reqType ManifestRequestType) (string, []byte, error)

func (*Registry) ManifestV2

func (r *Registry) ManifestV2(ctx context.Context, repository, reference string) (*manifestV2.DeserializedManifest, string, error)

func (*Registry) Ping

func (r *Registry) Ping() (uint, error)

func (*Registry) Repositories

func (r *Registry) Repositories() ([]string, error)

func (*Registry) Search

func (r *Registry) Search(term string, limit int) ([]string, error)

func (*Registry) Tags

func (r *Registry) Tags(repository string) ([]string, error)

func (*Registry) UploadLayer

func (registry *Registry) UploadLayer(repository string, digest digest.Digest, content io.Reader) error

type TokenTransport

type TokenTransport struct {
	Transport http.RoundTripper
	Username  string
	Password  string
	Token     string
}

func (*TokenTransport) RoundTrip

func (t *TokenTransport) RoundTrip(req *http.Request) (*http.Response, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL