Skip to contents

An R6 class to provide a lower-level interface to the query endpoint of the OSV API.

Value

An R6 object to operate with OSV query endpoint.

Details

Pageination is implemented via httr2::req_perform_iterative() and a private method for extracting tokens automatically. When initialized, the page_token is set to NULL; if a token is generated for large results the process is handled internally. The response object will contain a list of all returned responses before any formatting occurred. The content field will contain the list of vulnerabilities which may be further parsed into a table format.

Public fields

request

Request object made by httr2.

content

Body contents of response from OSV API.

response

Response object returned from OSV API.

Methods


Method new()

Set the core request details for subsequent use when called in run() method.

Usage

RosvQuery1$new(
  commit = NULL,
  version = NULL,
  name = NULL,
  ecosystem = NULL,
  purl = NULL
)

Arguments

commit

Commit hash to query against (do not use when version set).

version

Version of package.

name

Name of package.

ecosystem

Ecosystem package lives within (must be set if using name).

purl

URL for package (do not use if name or ecosystem is set).


Method run()

Perform the request and return response for OSV API call.

Usage

RosvQuery1$run()


Method parse()

Parse the contents returned into a tidier format. Can use future plans to help parallelize. Not all contents are parsed.

Usage

RosvQuery1$parse()


Method print()

Print basic details of query object to screen.

Usage

RosvQuery1$print(...)

Arguments

...

Reserved for possible future use.


Method clone()

The objects of this class are cloneable with this method.

Usage

RosvQuery1$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

query <- RosvQuery1$new(commit = '6879efc2c1596d11a6a6ad296f80063b558d5e0f')
query
#> Request made to: NA 
#> Successful responses of total: NA 
#> Successful content size (bytes): NA