aws-delivlib
Version:
A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.
42 lines (41 loc) • 1.22 kB
JavaScript
import { Octokit as OctokitCore } from "@octokit/core";
import { paginateRest } from "@octokit/plugin-paginate-rest";
import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
import { retry } from "@octokit/plugin-retry";
import { throttling } from "@octokit/plugin-throttling";
import { VERSION } from "./version";
import { RequestError } from "@octokit/request-error";
const Octokit = OctokitCore.plugin(
restEndpointMethods,
paginateRest,
retry,
throttling
).defaults({
userAgent: `octokit.js/${VERSION}`,
throttle: {
onRateLimit,
onSecondaryRateLimit
}
});
function onRateLimit(retryAfter, options, octokit) {
octokit.log.warn(
`Request quota exhausted for request ${options.method} ${options.url}`
);
if (options.request.retryCount === 0) {
octokit.log.info(`Retrying after ${retryAfter} seconds!`);
return true;
}
}
function onSecondaryRateLimit(retryAfter, options, octokit) {
octokit.log.warn(
`SecondaryRateLimit detected for request ${options.method} ${options.url}`
);
if (options.request.retryCount === 0) {
octokit.log.info(`Retrying after ${retryAfter} seconds!`);
return true;
}
}
export {
Octokit,
RequestError
};