blackduck

package
v1.341.0 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2024 License: Apache-2.0 Imports: 18 Imported by: 2

Documentation

Index

Constants

View Source
const (
	HEADER_PROJECT_DETAILS_V4 = "application/vnd.blackducksoftware.project-detail-4+json"
	HEADER_USER_V4            = "application/vnd.blackducksoftware.user-4+json"
	HEADER_BOM_V6             = "application/vnd.blackducksoftware.bill-of-materials-6+json"
)
View Source
const ReportsDirectory = "blackduck"

ReportsDirectory defines the subfolder for the Blackduck reports which are generated

Variables

This section is empty.

Functions

func CreateSarifResultFile added in v1.204.0

func CreateSarifResultFile(vulns *Vulnerabilities, projectName, projectVersion, projectLink string) *format.SARIF

CreateSarifResultFile creates a SARIF result from the Vulnerabilities that were brought up by the scan

func WriteSarifFile added in v1.204.0

func WriteSarifFile(sarif *format.SARIF, utils piperutils.FileUtils) ([]piperutils.Path, error)

WriteSarifFile write a JSON sarif format file for upload into e.g. GCP

func WriteVulnerabilityReports added in v1.204.0

func WriteVulnerabilityReports(scanReport reporting.ScanReport, utils piperutils.FileUtils) ([]piperutils.Path, error)

WriteVulnerabilityReports writes vulnerability information from ScanReport into dedicated outputs e.g. HTML

Types

type Client

type Client struct {
	BearerToken                 string `json:"bearerToken,omitempty"`
	BearerExpiresInMilliseconds int64  `json:"expiresInMilliseconds,omitempty"`
	// contains filtered or unexported fields
}

Client defines a BlackDuck client

func NewClient

func NewClient(token, serverURL string, httpClient piperhttp.Sender) Client

NewClient creates a new BlackDuck client

func (*Client) GetComponents

func (b *Client) GetComponents(projectName, versionName string) (*Components, error)

func (*Client) GetComponentsWithLicensePolicyRule added in v1.165.0

func (b *Client) GetComponentsWithLicensePolicyRule(projectName, versionName string) (*Components, error)

func (*Client) GetPolicyStatus

func (b *Client) GetPolicyStatus(projectName, versionName string) (*PolicyStatus, error)

func (*Client) GetProject

func (b *Client) GetProject(projectName string) (*Project, error)

GetProject returns a project with a given name

func (*Client) GetProjectVersion

func (b *Client) GetProjectVersion(projectName, projectVersion string) (*ProjectVersion, error)

GetProjectVersion returns a project version with a given name

func (b *Client) GetProjectVersionLink(projectName, versionName string) (string, error)

func (*Client) GetVulnerabilities

func (b *Client) GetVulnerabilities(projectName, versionName string) (*Vulnerabilities, error)

type Component

type Component struct {
	Name                string            `json:"componentName,omitempty"`
	Version             string            `json:"componentVersionName,omitempty"`
	ComponentOriginName string            `json:"componentVersionOriginName,omitempty"`
	PrimaryLanguage     string            `json:"primaryLanguage,omitempty"`
	PolicyStatus        string            `json:"policyStatus,omitempty"`
	MatchTypes          []string          `json:"matchTypes,omitempty"`
	Origins             []ComponentOrigin `json:"origins,omitempty"`
	Metadata            `json:"_meta,omitempty"`
}

func (*Component) MatchedType added in v1.260.0

func (c *Component) MatchedType() string

MatchedType returns matched type of component: direct/transitive

func (*Component) ToPackageUrl added in v1.238.0

func (c *Component) ToPackageUrl() *packageurl.PackageURL

ToPackageUrl creates the package URL for the component

type ComponentOrigin added in v1.260.0

type ComponentOrigin struct {
	ExternalNamespace string `json:"externalNamespace,omitempty"`
	ExternalID        string `json:"externalId,omitempty"`
}

type Components

type Components struct {
	TotalCount int         `json:"totalCount,omitempty"`
	Items      []Component `json:"items,omitempty"`
}
type Link struct {
	Rel  string `json:"rel,omitempty"`
	Href string `json:"href,omitempty"`
}

Link defines BlackDuck links to e.g. versions of projects

type Metadata

type Metadata struct {
	Href  string `json:"href,omitempty"`
	Links []Link `json:"links,omitempty"`
}

Metadata defines BlackDuck metadata for e.g. projects

type PolicyStatus

type PolicyStatus struct {
	OverallStatus        string `json:"overallStatus,omitempty"`
	PolicyVersionDetails `json:"componentVersionPolicyViolationDetails,omitempty"`
}

type PolicyVersionDetails

type PolicyVersionDetails struct {
	Name           string           `json:"name,omitempty"`
	SeverityLevels []SeverityLevels `json:"severityLevels,omitEmpty"`
}

type Project

type Project struct {
	Name     string `json:"name,omitempty"`
	Metadata `json:"_meta,omitempty"`
}

Project defines a BlackDuck project

type ProjectVersion

type ProjectVersion struct {
	Name     string `json:"versionName,omitempty"`
	Metadata `json:"_meta,omitempty"`
}

ProjectVersion defines a version of a BlackDuck project

type ProjectVersions

type ProjectVersions struct {
	TotalCount int              `json:"totalCount,omitempty"`
	Items      []ProjectVersion `json:"items,omitempty"`
}

ProjectVersions defines the response to a BlackDuck project version API request

type Projects

type Projects struct {
	TotalCount int       `json:"totalCount,omitempty"`
	Items      []Project `json:"items,omitempty"`
}

Projects defines the response to a BlackDuck project API request

type SeverityLevels

type SeverityLevels struct {
	Name  string `json:"name,omitempty"`
	Value int    `json:"value,omitempty"`
}

type Vulnerabilities

type Vulnerabilities struct {
	TotalCount int             `json:"totalCount,omitempty"`
	Items      []Vulnerability `json:"items,omitempty"`
}

type Vulnerability

type Vulnerability struct {
	Name                         string `json:"componentName,omitempty"`
	Version                      string `json:"componentVersionName,omitempty"`
	ComponentVersionOriginID     string `json:"componentVersionOriginId,omitempty"`
	ComponentVersionOriginName   string `json:"componentVersionOriginName,omitempty"`
	Ignored                      bool   `json:"ignored,omitempty"`
	VulnerabilityWithRemediation `json:"vulnerabilityWithRemediation,omitempty"`
	Component                    *Component
	// contains filtered or unexported fields
}

func (Vulnerability) Title added in v1.204.0

func (v Vulnerability) Title() string

Title returns the issue title representation of the contents

func (Vulnerability) ToMarkdown added in v1.204.0

func (v Vulnerability) ToMarkdown() ([]byte, error)

ToMarkdown returns the markdown representation of the contents

func (Vulnerability) ToTxt added in v1.204.0

func (v Vulnerability) ToTxt() string

ToTxt returns the textual representation of the contents

type VulnerabilityWithRemediation

type VulnerabilityWithRemediation struct {
	VulnerabilityName      string  `json:"vulnerabilityName,omitempty"`
	BaseScore              float32 `json:"baseScore,omitempty"`
	Severity               string  `json:"severity,omitempty"`
	RemediationStatus      string  `json:"remediationStatus,omitempty"`
	RemediationComment     string  `json:"remediationComment,omitempty"`
	Description            string  `json:"description,omitempty"`
	OverallScore           float32 `json:"overallScore,omitempty"`
	CweID                  string  `json:"cweId,omitempty"`
	ExploitabilitySubscore float32 `json:"exploitabilitySubscore,omitempty"`
	ImpactSubscore         float32 `json:"impactSubscore,omitempty"`
	RelatedVulnerability   string  `json:"relatedVulnerability,omitempty"`
	RemidiatedBy           string  `json:"remediationCreatedBy,omitempty"`
}

Jump to

Keyboard shortcuts

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