gh {gh} | R Documentation |
Minimal wrapper to access GitHub's API.
This is an extremely minimal client. You need to know the API to be able to use this client. All this function does is:
Try to substitute each listed parameter into endpoint
, using the
:parameter
notation.
If a GET request (the default), then add all other listed parameters as query parameters.
If not a GET request, then send the other parameters in the request body, as JSON.
Convert the response to an R list using jsonlite::fromJSON()
.
gh( endpoint, ..., per_page = NULL, .token = NULL, .destfile = NULL, .overwrite = FALSE, .api_url = NULL, .method = "GET", .limit = NULL, .accept = "application/vnd.github.v3+json", .send_headers = NULL, .progress = TRUE )
endpoint |
GitHub API endpoint. Must be one of the following forms:
If the method is not supplied, will use |
... |
Name-value pairs giving API parameters. Will be matched
into |
per_page |
Number of items to return per page. If omitted,
will be substituted by |
.token |
Authentication token. Defaults to |
.destfile |
path to write response to disk. If NULL (default), response will be processed and returned as an object. If path is given, response will be written to disk in the form sent. |
.overwrite |
if |
.api_url |
Github API url (default: https://api.github.com). Used
if |
.method |
HTTP method to use if not explicitly supplied in the
|
.limit |
Number of records to return. This can be used
instead of manual pagination. By default it is |
.accept |
The value of the |
.send_headers |
Named character vector of header field values
(except |
.progress |
Whether to show a progress indicator for calls that need more than one HTTP request. |
Answer from the API as a gh_response
object, which is also a
list
. Failed requests will generate an R error. Requests that
generate a raw response will return a raw vector.
Maintainer: Gábor Csárdi csardi.gabor@gmail.com [contributor]
Authors:
Jennifer Bryan
Hadley Wickham
Useful links:
gh_gql()
if you want to use the GitHub GraphQL API,
gh_whoami()
for details on GitHub API token management.
## Repositories of a user, these are equivalent gh("/users/hadley/repos") gh("/users/:username/repos", username = "hadley") ## Starred repositories of a user gh("/users/hadley/starred") gh("/users/:username/starred", username = "hadley") ## Create a repository, needs a token in GITHUB_PAT (or GITHUB_TOKEN) ## environment variable gh("POST /user/repos", name = "foobar") ## Issues of a repository gh("/repos/hadley/dplyr/issues") gh("/repos/:owner/:repo/issues", owner = "hadley", repo = "dplyr") ## Automatic pagination users <- gh("/users", .limit = 50) length(users) ## Access developer preview of Licenses API (in preview as of 2015-09-24) gh("/licenses") # used to error code 415 gh("/licenses", .accept = "application/vnd.github.drax-preview+json") ## Access Github Enterprise API ## Use GITHUB_API_URL environment variable to change the default. gh("/user/repos", type = "public", .api_url = "https://github.foobar.edu/api/v3") ## Use I() to force body part to be sent as an array, even if length 1 ## This works whether assignees has length 1 or > 1 assignees <- "gh_user" assignees <- c("gh_user1", "gh_user2") gh("PATCH /repos/OWNER/REPO/issues/1", assignees = I(assignees))