mirror of
https://github.com/github/codeql-action.git
synced 2025-12-27 01:30:10 +08:00
35 lines
1000 B
JavaScript
35 lines
1000 B
JavaScript
import { RequestError } from "@octokit/request-error";
|
|
function requestToOAuthBaseUrl(request) {
|
|
const endpointDefaults = request.endpoint.DEFAULTS;
|
|
return /^https:\/\/(api\.)?github\.com$/.test(endpointDefaults.baseUrl) ? "https://github.com" : endpointDefaults.baseUrl.replace("/api/v3", "");
|
|
}
|
|
async function oauthRequest(request, route, parameters) {
|
|
const withOAuthParameters = {
|
|
baseUrl: requestToOAuthBaseUrl(request),
|
|
headers: {
|
|
accept: "application/json"
|
|
},
|
|
...parameters
|
|
};
|
|
const response = await request(route, withOAuthParameters);
|
|
if ("error" in response.data) {
|
|
const error = new RequestError(
|
|
`${response.data.error_description} (${response.data.error}, ${response.data.error_uri})`,
|
|
400,
|
|
{
|
|
request: request.endpoint.merge(
|
|
route,
|
|
withOAuthParameters
|
|
)
|
|
}
|
|
);
|
|
error.response = response;
|
|
throw error;
|
|
}
|
|
return response;
|
|
}
|
|
export {
|
|
oauthRequest,
|
|
requestToOAuthBaseUrl
|
|
};
|