dependencies

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultOptions = Options{
	FailOnSingleMulti: true,
	ReadGitVersion:    true,
	UseGitIgnore:      true,
	IndexFiles:        false,
	// contains filtered or unexported fields
}
View Source
var ErrMultipleCodebases = errors.New("multiple codebases found")

Functions

func GenerateCodebaseID

func GenerateCodebaseID(language, relativePath string) string

GenerateCodebaseID creates a codebase ID from language and relative path.

func ParseCodebaseID

func ParseCodebaseID(id string) (language, path string, err error)

ParseCodebaseID parses a codebase ID into its language and path components.

Types

type Codebase added in v0.3.0

type Codebase struct {
	Path string
}

Codebase is the DecomposableSubject consumed by the dependencies unpacker. It points at a filesystem path that may contain one or more codebases; the unpacker scans it and runs the matching decomposers.

func (*Codebase) DecomposableType added in v0.3.0

func (c *Codebase) DecomposableType() string

DecomposableType identifies this subject as a codebase, routing it to the dependencies unpacker through the registry.

type CodebaseInfo

type CodebaseInfo struct {
	ID       string // e.g., "golang:./services/api"
	Language string // e.g., "golang", "rust"
	Path     string // Relative path from input directory
	AbsPath  string // Absolute filesystem path
}

CodebaseInfo contains information about a discovered codebase.

type Options

type Options struct {
	// FailOnSingleMulti makes Unpacker return an error on calls that return a
	// single nodelist but obtain more than one from the configured decomposers.
	// This can happen when a directory contains code for more than one language
	// or multiple projects in the same directory.
	//
	// By default this is on as turning it off causes unpacker to behave in a
	// non-deterministic way as it can return different data depending on the
	// order of the configured decomposers
	FailOnSingleMulti bool

	// IndexFiles instructs the unpacker to add all files to the resulting
	// nodelist after running source decomposers in a directory. This runs
	// the file decomposer indexer which will hash all files in the source
	// directory.
	IndexFiles bool

	// ReadGitVersion instructs the unpacker to read the current version from
	// the git history and pass it to the decomposers to use as the version
	// for the root nodes.
	ReadGitVersion bool

	// IgnorePatterns are additional paths to ignore (in addition to thise in .gitignore)
	IgnorePatterns []string

	// UseGitIgnore instructs the unpacker to use load patterns from the gitignore
	// file when available .
	UseGitIgnore bool

	// CodebaseFilter filters to a specific codebase by ID (e.g., "golang:./services/api").
	// If empty, all codebases are included.
	CodebaseFilter string

	// Networking controls how much network access decomposers are allowed.
	// Defaults to NetworkEssential.
	Networking api.NetworkLevel

	// IncludeDev includes development/test dependencies.
	IncludeDev bool

	// IncludeBuild includes build tool dependencies.
	IncludeBuild bool

	// IncludeOptional includes optional dependencies.
	IncludeOptional bool
	// contains filtered or unexported fields
}

type Sources

type Sources struct {
	Paths     []string
	Artifacts []string
}

type Unpacker

type Unpacker struct {
	Options Options
	// contains filtered or unexported fields
}

Unpacker is the main tool to extract dependency data

func NewUnpacker

func NewUnpacker() *Unpacker

func (*Unpacker) Extract

func (unpacker *Unpacker) Extract(ctx context.Context, subject api.DecomposableSubject) ([]*sbom.NodeList, error)

Extract reads dependency data from a subject. The dependencies unpacker handles codebase subjects: it scans the subject's path for codebases and runs the configured decomposers over them, returning the resulting nodelists.

func (*Unpacker) ExtractCodebase

func (unpacker *Unpacker) ExtractCodebase(path string) (*sbom.NodeList, error)

ExtractFromCodeBaseWithContext

func (*Unpacker) ExtractCodebaseWithContext

func (unpacker *Unpacker) ExtractCodebaseWithContext(ctx context.Context, path string) (*sbom.NodeList, error)

ExtractCodeBaseWithContext extracts data from a single directory.

func (*Unpacker) ListCodebases

func (unpacker *Unpacker) ListCodebases(ctx context.Context, path string) ([]CodebaseInfo, error)

ListCodebases discovers and lists all codebases found in the given path.

func (*Unpacker) RegisterDecomposer

func (unpacker *Unpacker) RegisterDecomposer(d api.Decomposer)

func (*Unpacker) UnregisterDecomposer

func (unpacker *Unpacker) UnregisterDecomposer(d api.Decomposer)

Jump to

Keyboard shortcuts

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