reference

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// HEAD reserved tag
	Head = "HEAD"
	// REBASE_HEAD reserved tag
	RebaseHead = "REBASE_HEAD"

	Latest = "latest"

	IdPrefix  = "@sha256:"
	TagPrefix = ":"
)

Variables

View Source
var (
	ErrNotAName            = errors.New("not a name")
	ErrNameContainsTagOrID = errors.New("name contains tag or id")
)
View Source
var (
	ErrIDInvalidFormat = errors.New("invalid id format")
	ErrTagIsReserved   = errors.New("tag is reserved")

	HeadTag       = LocalTagFromTag(tag{TagPrefix + Head})
	RebaseHeadTag = LocalTagFromTag(tag{TagPrefix + RebaseHead})
	LatestTag     = RemoteTagFromTag(tag{TagPrefix + Latest})
)
View Source
var (
	ErrInvalidOffsetFormat = errors.New("invalid offset format")
)

Functions

func DockerRefFromReference added in v0.2.0

func DockerRefFromReference(ref Reference) reference.Named

DockerRefFromReference returns a docker reference from the given repository reference.

Types

type ID added in v0.2.0

type ID struct {
	// contains filtered or unexported fields
}

ID defines the ID component of a repository reference.

func IDFromDigest added in v0.2.0

func IDFromDigest(d digest.Digest) ID

IDFromDigested returns an ID from the given digest.

func IDFromString added in v0.2.0

func IDFromString(id string) (ID, error)

IDFromString returns a new ID if the given string is a valid ID.

func (ID) String added in v0.2.0

func (i ID) String() string

String implements fmt.Stringer.

type IdOrLocalTag added in v0.2.0

type IdOrLocalTag interface {
	ID | LocalTag
	fmt.Stringer
}

type IdOrRemoteTag added in v0.2.0

type IdOrRemoteTag interface {
	ID | RemoteTag
	fmt.Stringer
}

type IdOrTag added in v0.2.0

type IdOrTag interface {
	IdOrTag() string
}

type IdOrTagConstraint added in v0.2.0

type IdOrTagConstraint interface {
	ID | TagConstraint
	fmt.Stringer
}

IdOrTagConstraint is either an ID or a Tag.

type Local added in v0.2.0

type Local[T IdOrLocalTag] struct {
	// contains filtered or unexported fields
}

Local defines a concrete local reference with either an ID or a local tag.

func LocalFromName added in v0.2.0

func LocalFromName(name Name) Local[LocalTag]

LocalFromName returns a new Local reference with the given name and a Head tag.

func NewLocal added in v0.2.0

func NewLocal[T IdOrLocalTag](name Name, idOrTag T) Local[T]

NewLocal returns a new Local reference with the given name and ID or Tag.

func (Local) GetIdOrTag added in v0.2.0

func (r Local) GetIdOrTag() T

func (Local) IdOrTag added in v0.2.0

func (r Local) IdOrTag() string

func (Local) Name added in v0.2.0

func (r Local) Name() Name

func (Local) String added in v0.2.0

func (r Local) String() string

type LocalRef added in v0.2.0

type LocalRef interface {
	Reference
	// contains filtered or unexported methods
}

LocalRef defines a local repository reference.

func LocalRefFromString added in v0.2.0

func LocalRefFromString(rawRef string) (LocalRef, error)

type LocalTag added in v0.2.0

type LocalTag struct {
	// contains filtered or unexported fields
}

LocalTag defines a tag for local reference. Any docker tag is a valid local tag.

func LocalTagFromString added in v0.2.0

func LocalTagFromString(rawTag string) (LocalTag, error)

LocalTagFromString creates a new LocalTag after validating the given tag.

func LocalTagFromTag added in v0.2.0

func LocalTagFromTag(tag Tag) LocalTag

LocalTagFromTagged creates a new LocalTag from the given Tagged reference.

func (LocalTag) String added in v0.2.0

func (t LocalTag) String() string

String implements fmt.Stringer.

func (LocalTag) Tag added in v0.2.0

func (t LocalTag) Tag() string

Tag implements reference.Tagged

type Name

type Name struct {
	// contains filtered or unexported fields
}

Name define the name component of a Reference.

func NameFromNamed

func NameFromNamed(named reference.Named) Name

NameFromNamed returns a Name object from the given named reference.

func NameFromString

func NameFromString(name string) (Name, error)

Name returns a Name object from the given string after ensuring it is a valid name. An error is returned if the string is invalid or it contains a tag, an ID.

func (Name) String

func (n Name) String() string

String implements fmt.Stringer

type Reference added in v0.2.0

type Reference interface {
	String() string
	Name() Name
	IdOrTag
}

Reference defines a repository reference. A reference composed of a repository name and an ID or a Tag.

NAME[:TAG | @sha256:ID]

type Relative added in v0.2.0

type Relative struct {
	// contains filtered or unexported fields
}

Relative defines a relative reference. It is made of a base and an offset. Base is the reference on which the offset must be applied to get an absolute reference.

func RelativeFromReferenceAndOffset added in v0.2.0

func RelativeFromReferenceAndOffset(ref Reference, offset uint) Relative

RelativeFromReferenceAndOffset returns a new Relative reference base on the given reference and offset.

func RelativeFromString added in v0.2.0

func RelativeFromString(ref string) (Relative, error)

RelativeFromString parses the given string and returns relative reference after validating and normalizing it. An error is returned if the reference is invalid.

func (Relative) Base added in v0.2.0

func (r Relative) Base() Reference

Base returns the base of the relative reference

func (Relative) Offset added in v0.2.0

func (r Relative) Offset() uint

Offset returns the offset part of the relative reference.

func (Relative) String added in v0.2.0

func (r Relative) String() string

String implements fmt.Stringer.

type Remote added in v0.2.0

type Remote[T IdOrRemoteTag] struct {
	// contains filtered or unexported fields
}

Remote define a concrete remote reference with either an ID or a remote tag.

func NewRemote added in v0.2.0

func NewRemote[T IdOrRemoteTag](name Name, idOrTag T) Remote[T]

NewRemote returns a new Remote reference with the given name and tag.

func RemoteFromName added in v0.2.0

func RemoteFromName(name Name) Remote[RemoteTag]

RemoteFromName returns a new Remote reference with the given name and a Latest tag.

func (Remote) GetIdOrTag added in v0.2.0

func (r Remote) GetIdOrTag() T

func (Remote) IdOrTag added in v0.2.0

func (r Remote) IdOrTag() string

func (Remote) Name added in v0.2.0

func (r Remote) Name() Name

func (Remote) String added in v0.2.0

func (r Remote) String() string

type RemoteRef added in v0.2.0

type RemoteRef interface {
	Reference
	// contains filtered or unexported methods
}

func RemoteRefFromString added in v0.2.0

func RemoteRefFromString(rawRef string) (RemoteRef, error)

type RemoteTag added in v0.2.0

type RemoteTag struct {
	// contains filtered or unexported fields
}

RemoteTag defines a tag for remote reference. Remote tag can't contains reserved tag such as HEAD, REBASE_HEAD, etc.

func RemoteTagFromString added in v0.2.0

func RemoteTagFromString(rawTag string) (RemoteTag, error)

RemoteTagFromString creates a new RemoteTag after validating the given tag.

func RemoteTagFromTag added in v0.2.0

func RemoteTagFromTag(tag Tag) RemoteTag

RemoteTagFromTag creates a new RemoteTag from the given Tagged reference. This function panic if the given tag is a reserved tag.

func (RemoteTag) String added in v0.2.0

func (t RemoteTag) String() string

String implements fmt.Stringer.

func (RemoteTag) Tag added in v0.2.0

func (t RemoteTag) Tag() string

Tag implements reference.Tagged

type Tag

type Tag interface {
	Tag() string
}

Tag define objects with a tag.

type TagConstraint added in v0.2.0

type TagConstraint interface {
	LocalTag | RemoteTag
}

TagConstraint defines either a LocalTag or a RemoteTag.

Jump to

Keyboard shortcuts

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