list

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2024 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Overview

Package list provides a public list of SCALIBR-internal extraction plugins.

Index

Constants

This section is empty.

Variables

View Source
var (

	// C++ extractors.
	Cpp []filesystem.Extractor = []filesystem.Extractor{conanlock.Extractor{}}
	// Java extractors.
	Java []filesystem.Extractor = []filesystem.Extractor{
		gradlelockfile.Extractor{},
		gradleverificationmetadataxml.Extractor{},
		javaarchive.New(javaarchive.DefaultConfig()),
		pomxml.Extractor{},
	}
	// Javascript extractors.
	Javascript []filesystem.Extractor = []filesystem.Extractor{
		packagejson.New(packagejson.DefaultConfig()),
		packagelockjson.New(packagelockjson.DefaultConfig()),
		&pnpmlock.Extractor{},
		&yarnlock.Extractor{},
	}
	// Python extractors.
	Python []filesystem.Extractor = []filesystem.Extractor{
		wheelegg.New(wheelegg.DefaultConfig()),
		requirements.New(requirements.DefaultConfig()),
		pipfilelock.Extractor{},
		pdmlock.Extractor{},
		poetrylock.Extractor{},
	}
	// Go extractors.
	Go []filesystem.Extractor = []filesystem.Extractor{
		gobinary.New(gobinary.DefaultConfig()),
		&gomod.Extractor{},
	}
	// Dart extractors.
	Dart []filesystem.Extractor = []filesystem.Extractor{pubspec.Extractor{}}
	// Erlang extractors.
	Erlang []filesystem.Extractor = []filesystem.Extractor{mixlock.Extractor{}}
	// R extractors
	R []filesystem.Extractor = []filesystem.Extractor{renvlock.Extractor{}}
	// Ruby extractors.
	Ruby []filesystem.Extractor = []filesystem.Extractor{gemspec.New(gemspec.DefaultConfig())}
	// Rust extractors.
	Rust []filesystem.Extractor = []filesystem.Extractor{cargolock.Extractor{}}
	// SBOM extractors.
	SBOM []filesystem.Extractor = []filesystem.Extractor{&cdx.Extractor{}, &spdx.Extractor{}}
	// Dotnet (.NET) extractors.
	Dotnet []filesystem.Extractor = []filesystem.Extractor{packageslockjson.New(packageslockjson.DefaultConfig())}
	// PHP extractors.
	PHP []filesystem.Extractor = []filesystem.Extractor{&composerlock.Extractor{}}
	// Containers extractors.
	Containers []filesystem.Extractor = []filesystem.Extractor{containerd.New(containerd.DefaultConfig())}

	// OS extractors.
	OS []filesystem.Extractor = []filesystem.Extractor{
		dpkg.New(dpkg.DefaultConfig()),
		apk.New(apk.DefaultConfig()),
		rpm.New(rpm.DefaultConfig()),
		cos.New(cos.DefaultConfig()),
		snap.New(snap.DefaultConfig()),
		flatpak.New(flatpak.DefaultConfig()),
		homebrew.Extractor{},
		macapps.New(macapps.DefaultConfig())}

	// Default extractors that are recommended to be enabled.
	Default []filesystem.Extractor = slices.Concat(Java, Javascript, Python, Go, OS)
	// All extractors available from SCALIBR. These don't include the untested extractors which can be enabled manually.
	All []filesystem.Extractor = slices.Concat(
		Cpp,
		Java,
		Javascript,
		Python,
		Go,
		Dart,
		Erlang,
		PHP,
		R,
		Ruby,
		Rust,
		Dotnet,
		SBOM,
		OS,
		Containers,
	)

	// Untested extractors are OSV extractors without tests.
	// TODO(b/307735923): Add tests for these and move them into All.
	Untested []filesystem.Extractor = []filesystem.Extractor{
		osv.Wrapper{ExtractorName: "ruby/gemfile", ExtractorVersion: 0, PURLType: purl.TypeGem, Extractor: lockfile.GemfileLockExtractor{}},
	}
)

LINT.IfChange

Functions

func ExtractorFromName

func ExtractorFromName(name string) (filesystem.Extractor, error)

ExtractorFromName returns a single extractor based on its exact name.

func ExtractorsFromNames

func ExtractorsFromNames(names []string) ([]filesystem.Extractor, error)

ExtractorsFromNames returns a deduplicated list of extractors from a list of names.

func FilterByCapabilities added in v0.1.4

func FilterByCapabilities(exs []filesystem.Extractor, capabs *plugin.Capabilities) []filesystem.Extractor

FilterByCapabilities returns all extractors from the given list that can run under the specified capabilities (OS, direct filesystem access, network access, etc.) of the scanning environment.

func FromCapabilities added in v0.1.3

func FromCapabilities(capabs *plugin.Capabilities) []filesystem.Extractor

FromCapabilities returns all extractors that can run under the specified capabilities (OS, direct filesystem access, network access, etc.) of the scanning environment.

Types

This section is empty.

Jump to

Keyboard shortcuts

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