Reports wallet name, GitHub login, and GitHub URL for the current authenticated user, the first bit of the token, and the associated scopes.

gh_whoami(.token = NULL, .api_url = NULL, .send_headers = NULL)



Authentication token. Defaults to GITHUB_PAT or GITHUB_TOKEN environment variables, in this order if any is set. See gh_token() if you need more flexibility, e.g. different tokens for different GitHub Enterprise deployments.


Github API url (default: Used if endpoint just contains a path. Defaults to GITHUB_API_URL environment variable if set.


Named character vector of header field values (except Authorization, which is handled via .token). This can be used to override or augment the default User-Agent header: "".


A gh_response object, which is also a list.


Get a personal access token for the GitHub API from and select the scopes necessary for your planned tasks. The repo scope, for example, is one many are likely to need. The token itself is a string of 40 letters and digits. You can store it any way you like and provide explicitly via the .token argument to gh().

However, many prefer to define an environment variable GITHUB_PAT (or GITHUB_TOKEN) with this value in their .Renviron file. Add a line that looks like this, substituting your PAT:


Put a line break at the end! If you're using an editor that shows line numbers, there should be (at least) two lines, where the second one is empty. Restart R for this to take effect. Call gh_whoami() to confirm success.

To get complete information on the authenticated user, call gh("/user").

For token management via API (versus the browser), use the OAuth Authorizations API. This API requires Basic Authentication using your username and password, not tokens, and is outside the scope of the gh package.


#> Error in gh_process_response(raw): #> GitHub API error (403): 403 Forbidden #> Message: Resource not accessible by integration #> Read more at
if (FALSE) { ## explicit token + use with GitHub Enterprise gh_whoami(.token = "8c70fd8419398999c9ac5bacf3192882193cadf2", .api_url = "") }