Documentation
¶
Index ¶
- type AffectedPackage
- type Client
- func (c *Client) EnhanceFindings(ctx context.Context, findings []rules.Finding) ([]EnhancedFinding, error)
- func (c *Client) GetVulnerabilityByID(ctx context.Context, vulnID string) (*Vulnerability, error)
- func (c *Client) QueryVulnerability(ctx context.Context, ecosystem, packageName, version string) ([]Vulnerability, error)
- type EnhancedFinding
- type Event
- type Package
- type QueryRequest
- type QueryResponse
- type Range
- type Reference
- type SeverityRating
- type Vulnerability
- type VulnerabilityInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AffectedPackage ¶
type AffectedPackage struct {
Package Package `json:"package"`
Ranges []Range `json:"ranges"`
Versions []string `json:"versions,omitempty"`
EcosystemSpecific map[string]interface{} `json:"ecosystem_specific,omitempty"`
}
AffectedPackage represents an affected package or ecosystem
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents an OSV.dev API client for vulnerability queries
func (*Client) EnhanceFindings ¶
func (c *Client) EnhanceFindings(ctx context.Context, findings []rules.Finding) ([]EnhancedFinding, error)
EnhanceFindings adds vulnerability intelligence to security findings
func (*Client) GetVulnerabilityByID ¶
GetVulnerabilityByID retrieves a specific vulnerability by ID
func (*Client) QueryVulnerability ¶
func (c *Client) QueryVulnerability(ctx context.Context, ecosystem, packageName, version string) ([]Vulnerability, error)
QueryVulnerability queries OSV.dev for vulnerability information
type EnhancedFinding ¶
type EnhancedFinding struct {
rules.Finding
VulnerabilityInfo *VulnerabilityInfo `json:"vulnerability_info,omitempty"`
RiskScore int `json:"risk_score"`
IntelligenceLevel string `json:"intelligence_level"` // "HIGH", "MEDIUM", "LOW", "NONE"
}
EnhancedFinding represents a finding with vulnerability intelligence
type Event ¶
type Event struct {
Introduced string `json:"introduced,omitempty"`
Fixed string `json:"fixed,omitempty"`
Limit string `json:"limit,omitempty"`
}
Event represents a version event
type Package ¶
type Package struct {
Ecosystem string `json:"ecosystem"`
Name string `json:"name"`
Purl string `json:"purl,omitempty"`
}
Package represents a package identifier
type QueryRequest ¶
type QueryRequest struct {
Version string `json:"version,omitempty"`
Package Package `json:"package"`
}
QueryRequest represents a vulnerability query request
type QueryResponse ¶
type QueryResponse struct {
Vulns []Vulnerability `json:"vulns"`
}
QueryResponse represents the response from OSV query
type SeverityRating ¶
SeverityRating represents a severity score
type Vulnerability ¶
type Vulnerability struct {
ID string `json:"id"`
Summary string `json:"summary"`
Details string `json:"details"`
Aliases []string `json:"aliases"`
Modified time.Time `json:"modified"`
Published time.Time `json:"published"`
References []Reference `json:"references"`
Affected []AffectedPackage `json:"affected"`
Severity []SeverityRating `json:"severity"`
DatabaseSpecific map[string]interface{} `json:"database_specific,omitempty"`
SchemaVersion string `json:"schema_version"`
}
Vulnerability represents an OSV vulnerability record
type VulnerabilityInfo ¶
type VulnerabilityInfo struct {
CVEID string `json:"cve_id,omitempty"`
GHSAID string `json:"ghsa_id,omitempty"`
Summary string `json:"summary"`
Severity string `json:"severity"`
Score string `json:"score,omitempty"`
Published time.Time `json:"published"`
References []string `json:"references"`
Ecosystem string `json:"ecosystem"`
PackageName string `json:"package_name,omitempty"`
}
VulnerabilityInfo represents enhanced vulnerability information