package source

import "github.com/moby/buildkit/source"

Index

Types

type Identifier

type Identifier interface {
	// Scheme returns the scheme of the identifier so that it can be routed back
	// to an appropriate Source.
	Scheme() string

	// Capture records the provenance of the identifier.
	Capture(dest *provenance.Capture, pin string) error
}

type Manager

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

func NewManager

func NewManager() (*Manager, error)

func (*Manager) Identifier

func (sm *Manager) Identifier(op *pb.Op_Source, platform *pb.Platform) (Identifier, error)

func (*Manager) Register

func (sm *Manager) Register(src Source)

func (*Manager) Resolve

func (sm *Manager) Resolve(ctx context.Context, id Identifier, sessM *session.Manager, vtx solver.Vertex) (SourceInstance, error)

type Source

type Source interface {
	// Schemes returns a list of SourceOp identifier schemes that this source
	// should match.
	Schemes() []string

	// Identifier constructs an Identifier from the given scheme, ref, and attrs,
	// all of which come from a SourceOp.
	Identifier(scheme, ref string, attrs map[string]string, platform *pb.Platform) (Identifier, error)

	// Resolve constructs an instance of the source from an Identifier.
	Resolve(ctx context.Context, id Identifier, sm *session.Manager, vtx solver.Vertex) (SourceInstance, error)
}

Source implementations provide "root" vertices in the graph that can be constructed from a URI-like string and arbitrary attrs.

type SourceInstance

type SourceInstance interface {
	// CacheKey returns the cache key for the instance.
	CacheKey(ctx context.Context, g session.Group, index int) (key, pin string, opts solver.CacheOpts, done bool, err error)

	// Snapshot creates a cache ref for the instance. May return a nil ref if source points to empty content, e.g. image without any layers.
	Snapshot(ctx context.Context, g session.Group) (cache.ImmutableRef, error)
}

SourceInstance represents a cacheable vertex created by a Source.

Source Files

identifier.go manager.go

Directories

PathSynopsis
source/containerimage
source/git
source/http
source/local
source/types
Version
v0.17.0-rc1
Published
Oct 8, 2024
Platform
js/wasm
Imports
9 packages
Last checked
3 minutes ago

Tools for package owners.