Documentation ¶
Index ¶
Constants ¶
View Source
const ( // QueryEndpoint is the URL for posting queries to OSV. QueryEndpoint = "https://api.osv.dev/v1/querybatch" // GetEndpoint is the URL for getting vulenrabilities from OSV. GetEndpoint = "https://api.osv.dev/v1/vulns" // BaseVulnerabilityURL is the base URL for detailed vulnerability views. BaseVulnerabilityURL = "https://osv.dev/vulnerability/" // MaxQueriesPerRequest splits up querybatch into multiple requests if // number of queries exceed this number MaxQueriesPerRequest = 1000 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BatchedQuery ¶
type BatchedQuery struct {
Queries []*Query `json:"queries"`
}
BatchedQuery represents a batched query to OSV.
type BatchedResponse ¶
type BatchedResponse struct {
Results []MinimalResponse `json:"results"`
}
BatchedResponse represents an unhydrated batched response from OSV.
func MakeRequest ¶
func MakeRequest(request BatchedQuery) (*BatchedResponse, error)
type HydratedBatchedResponse ¶
type HydratedBatchedResponse struct {
Results []Response `json:"results"`
}
HydratedBatchedResponse represents a hydrated batched response from OSV.
func Hydrate ¶
func Hydrate(resp *BatchedResponse) (*HydratedBatchedResponse, error)
Hydrate fills the results of the batched response with the full Vulnerability details.
type MinimalResponse ¶
type MinimalResponse struct {
Vulns []MinimalVulnerability `json:"vulns"`
}
MinimalResponse represents an unhydrated response from OSV.
type MinimalVulnerability ¶
type MinimalVulnerability struct {
ID string `json:"id"`
}
MinimalVulnerability represents an unhydrated vulnerability entry from OSV.
type Package ¶
type Package struct { Index int Path string PURL string `json:"purl,omitempty"` Name string `json:"name,omitempty"` Ecosystem string `json:"ecosystem,omitempty"` }
Package represents a package identifier for OSV.
type Query ¶
type Query struct { Type string Commit string `json:"commit,omitempty"` Package Package `json:"package,omitempty"` Version string `json:"version,omitempty"` Source SourceInfo `json:"omit"` }
Query represents a query to OSV.
func MakeCommitRequest ¶
MakeCommitRequest makes a commit hash request.
func MakePURLRequest ¶
MakePURLRequest makes a PURL request.
type Response ¶
type Response struct {
Vulns []Vulnerability `json:"vulns"`
}
Response represents a full response from OSV.
type SourceInfo ¶
func (SourceInfo) String ¶
func (s SourceInfo) String() string
type Vulnerability ¶
type Vulnerability struct { SchemaVersion string `json:"schema_version,omitempty"` ID string `json:"id,omitempty"` Modified time.Time `json:"modified,omitempty"` Published time.Time `json:"published,omitempty"` Aliases []string `json:"aliases,omitempty"` Summary string `json:"summary,omitempty"` Details string `json:"details,omitempty"` Affected []struct { Package struct { Ecosystem string `json:"ecosystem,omitempty"` Name string `json:"name,omitempty"` Purl string `json:"purl,omitempty"` } `json:"package,omitempty"` Ranges []struct { Type string `json:"type,omitempty"` Events []struct { Introduced string `json:"introduced,omitempty"` Fixed string `json:"fixed,omitempty"` LastAffected string `json:"last_affected,omitempty"` Limit string `json:"limit,omitempty"` } `json:"events,omitempty"` DatabaseSpecific map[string]interface{} `json:"database_specific,omitempty"` } `json:"ranges,omitempty"` Versions []string `json:"versions,omitempty"` DatabaseSpecific map[string]interface{} `json:"database_specific,omitempty"` EcosystemSpecific map[string]interface{} `json:"ecosystem_specific,omitempty"` } `json:"affected,omitempty"` References []struct { Type string `json:"type,omitempty"` URL string `json:"url,omitempty"` } `json:"references,omitempty"` DatabaseSpecific map[string]interface{} `json:"database_specific,omitempty"` }
func (*Vulnerability) GetAliases ¶
func (v *Vulnerability) GetAliases() []string
Click to show internal directories.
Click to hide internal directories.