artifact

package
v0.0.0-...-82b092a Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2023 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	SkipScan = errors.New("skip subsequent processes")
)

Functions

func Exit

func Exit(opts flag.Options, failedResults bool)

func Run

func Run(ctx context.Context, opts flag.Options, targetKind TargetKind) (err error)

Run performs artifact scanning

func WithCacheClient

func WithCacheClient(c cache.Cache) runnerOption

WithCacheClient takes a custom cache implementation It is useful when cvescan is imported as a library.

Types

type InitializeScanner

type InitializeScanner func(context.Context, ScannerConfig) (scanner.Scanner, func(), error)

InitializeScanner defines the initialize function signature of scanner

type Runner

type Runner interface {
	// ScanImage scans an image
	ScanImage(ctx context.Context, opts flag.Options) (types.Report, error)
	// ScanFilesystem scans a filesystem
	ScanFilesystem(ctx context.Context, opts flag.Options) (types.Report, error)
	// ScanRootfs scans rootfs
	ScanRootfs(ctx context.Context, opts flag.Options) (types.Report, error)
	// ScanRepository scans repository
	ScanRepository(ctx context.Context, opts flag.Options) (types.Report, error)
	// ScanSBOM scans SBOM
	ScanSBOM(ctx context.Context, opts flag.Options) (types.Report, error)
	// ScanVM scans VM
	ScanVM(ctx context.Context, opts flag.Options) (types.Report, error)
	// Filter filter a report
	Filter(ctx context.Context, opts flag.Options, report types.Report) (types.Report, error)
	// Report a writes a report
	Report(opts flag.Options, report types.Report) error
	// Close closes runner
	Close(ctx context.Context) error
}

func NewRunner

func NewRunner(ctx context.Context, cliOptions flag.Options, opts ...runnerOption) (Runner, error)

NewRunner initializes Runner that provides scanning functionalities. It is possible to return SkipScan and it must be handled by caller.

type ScannerConfig

type ScannerConfig struct {
	// e.g. image name and file path
	Target string

	// Cache
	ArtifactCache      cache.ArtifactCache
	LocalArtifactCache cache.LocalArtifactCache

	// Client/Server options
	RemoteOption client.ScannerOption

	// Artifact options
	ArtifactOption artifact.Option
}

type TargetKind

type TargetKind string

TargetKind represents what kind of artifact cvescan scans

const (
	TargetContainerImage TargetKind = "image"
	TargetFilesystem     TargetKind = "fs"
	TargetRootfs         TargetKind = "rootfs"
	TargetRepository     TargetKind = "repo"
	TargetImageArchive   TargetKind = "archive"
	TargetSBOM           TargetKind = "sbom"
	TargetVM             TargetKind = "vm"
)

Jump to

Keyboard shortcuts

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