Documentation ¶
Index ¶
- Constants
- Variables
- func Get(id string) (*models.Vulnerability, error)
- func GetWithClient(id string, client *http.Client) (*models.Vulnerability, error)
- type BatchedQuery
- type BatchedResponse
- type DetermineVersionHash
- type DetermineVersionResponse
- type HydratedBatchedResponse
- type MinimalResponse
- type MinimalVulnerability
- type Package
- type Query
- type Response
Constants ¶
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" // DetermineVersionEndpoint is the URL for posting determineversion queries to OSV. DetermineVersionEndpoint = "https://api.osv.dev/v1experimental/determineversion" // BaseVulnerabilityURL is the base URL for detailed vulnerability views. BaseVulnerabilityURL = "https://osv.dev/" )
Variables ¶
var RequestUserAgent = ""
Functions ¶
func GetWithClient ¶ added in v1.3.3
GetWithClient gets a Vulnerability for the given ID with the provided http client.
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)
MakeRequest sends a batched query to osv.dev
func MakeRequestWithClient ¶ added in v1.3.3
func MakeRequestWithClient(request BatchedQuery, client *http.Client) (*BatchedResponse, error)
MakeRequestWithClient sends a batched query to osv.dev with the provided http client.
type DetermineVersionHash ¶ added in v1.4.3
DetermineVersionHash holds the per file hash and path information for determineversion.
type DetermineVersionResponse ¶ added in v1.4.3
type DetermineVersionResponse struct { Matches []struct { Score float64 `json:"score"` RepoInfo struct { Type string `json:"type"` Address string `json:"address"` Tag string `json:"tag"` Version string `json:"version"` Commit string `json:"commit"` } `json:"repo_info"` } `json:"matches"` }
func MakeDetermineVersionRequest ¶ added in v1.4.3
func MakeDetermineVersionRequest(name string, hashes []DetermineVersionHash) (*DetermineVersionResponse, 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.
func HydrateWithClient ¶ added in v1.3.3
func HydrateWithClient(resp *BatchedResponse, client *http.Client) (*HydratedBatchedResponse, error)
HydrateWithClient fills the results of the batched response with the full Vulnerability details using the provided http client.
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 { 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 { Commit string `json:"commit,omitempty"` Package Package `json:"package,omitempty"` Version string `json:"version,omitempty"` Source models.SourceInfo `json:"-"` // TODO: Move this into Info struct in v2 Metadata models.Metadata `json:"-"` }
Query represents a query to OSV.
func MakeCommitRequest ¶
MakeCommitRequest makes a commit hash request.
func MakePURLRequest ¶
MakePURLRequest makes a PURL request.
func MakePkgRequest ¶
func MakePkgRequest(pkgDetails lockfile.PackageDetails) *Query
type Response ¶
type Response struct {
Vulns []models.Vulnerability `json:"vulns"`
}
Response represents a full response from OSV.