Documentation
¶
Overview ¶
Package osv provides a client for the OSV (Open Source Vulnerabilities) API.
Index ¶
- Constants
- func GetFixedVersion(affected Affected) string
- func GetSeverityLevel(v *Vulnerability) string
- func IsVersionAffected(affected Affected, version string) bool
- type Affected
- type BatchQueryRequest
- type BatchQueryResponse
- type Client
- type Event
- type Package
- type QueryRequest
- type QueryResponse
- type Range
- type Reference
- type Severity
- type Vulnerability
Constants ¶
const ( DefaultAPIURL = "https://api.osv.dev/v1" DefaultTimeout = 30 * time.Second )
Variables ¶
This section is empty.
Functions ¶
func GetFixedVersion ¶
GetFixedVersion returns the fixed version for an affected entry, if available.
func GetSeverityLevel ¶
func GetSeverityLevel(v *Vulnerability) string
GetSeverityLevel returns a normalized severity level from a vulnerability.
func IsVersionAffected ¶
IsVersionAffected checks if a specific version is affected by the vulnerability.
Types ¶
type Affected ¶
type Affected struct {
Package Package `json:"package"`
Ranges []Range `json:"ranges,omitempty"`
Versions []string `json:"versions,omitempty"`
EcosystemSpecific map[string]any `json:"ecosystem_specific,omitempty"`
DatabaseSpecific map[string]any `json:"database_specific,omitempty"`
}
Affected describes which package versions are affected.
type BatchQueryRequest ¶
type BatchQueryRequest struct {
Queries []QueryRequest `json:"queries"`
}
BatchQueryRequest is a request to query multiple packages.
type BatchQueryResponse ¶
type BatchQueryResponse struct {
Results []QueryResponse `json:"results"`
}
BatchQueryResponse is the response from a batch query.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an OSV API client.
func (*Client) BatchQuery ¶
func (c *Client) BatchQuery(ctx context.Context, queries []QueryRequest) ([][]Vulnerability, error)
BatchQuery queries for vulnerabilities affecting multiple packages.
func (*Client) GetVulnerability ¶
GetVulnerability fetches a specific vulnerability by ID.
type Event ¶
type Event struct {
Introduced string `json:"introduced,omitempty"`
Fixed string `json:"fixed,omitempty"`
LastAffected string `json:"last_affected,omitempty"`
Limit string `json:"limit,omitempty"`
}
Event is a version event (introduced, fixed, etc).
type Package ¶
type Package struct {
Ecosystem string `json:"ecosystem"`
Name string `json:"name"`
PURL string `json:"purl,omitempty"`
}
Package identifies a package.
type QueryRequest ¶
type QueryRequest struct {
Commit string `json:"commit,omitempty"`
Version string `json:"version,omitempty"`
Package Package `json:"package,omitempty"`
}
QueryRequest is a request to query vulnerabilities.
type QueryResponse ¶
type QueryResponse struct {
Vulns []Vulnerability `json:"vulns,omitempty"`
}
QueryResponse is the response from a query.
type Vulnerability ¶
type Vulnerability struct {
ID string `json:"id"`
Summary string `json:"summary,omitempty"`
Details string `json:"details,omitempty"`
Aliases []string `json:"aliases,omitempty"`
Modified time.Time `json:"modified"`
Published time.Time `json:"published"`
References []Reference `json:"references,omitempty"`
Affected []Affected `json:"affected,omitempty"`
Severity []Severity `json:"severity,omitempty"`
DatabaseSpecific map[string]any `json:"database_specific,omitempty"`
}
Vulnerability represents an OSV vulnerability.