osv

package
v0.0.0-...-b5b2af5 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2024 License: MIT Imports: 6 Imported by: 0

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

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

func MakeCommitRequest(commit string) *Query

MakeCommitRequest makes a commit hash request.

func MakePURLRequest

func MakePURLRequest(purl string) *Query

MakePURLRequest makes a PURL request.

type Response

type Response struct {
	Vulns []Vulnerability `json:"vulns"`
}

Response represents a full response from OSV.

type SourceInfo

type SourceInfo struct {
	Path string `json:"path"`
	Type string `json:"type"`
}

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 Get

func Get(id string) (*Vulnerability, error)

Get a Vulnerabiltiy for the given ID.

func (*Vulnerability) GetAliases

func (v *Vulnerability) GetAliases() []string

Jump to

Keyboard shortcuts

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