GitHub - octokit/plugin-retry.js: Octokit plugin for GitHub’s recommended request retries (original) (raw)
plugin-retry.js
Retries requests for server 4xx/5xx responses except
400
,401
,403
,404
,410
,422
, and451
.
Usage
Browsers | Load @octokit/plugin-retry and @octokit/core (or core-compatible module) directly from esm.sh <script type="module"> import { Octokit } from "https://esm.sh/@octokit/core"; import { retry } from "https://esm.sh/@octokit/plugin-retry"; </script> |
---|---|
Node | Install with npm install @octokit/core @octokit/plugin-retry. Optionally replace @octokit/core with a core-compatible module import { Octokit } from "@octokit/core"; import { retry } from "@octokit/plugin-retry"; |
const MyOctokit = Octokit.plugin(retry); const octokit = new MyOctokit({ auth: "secret123" });
// retries request up to 3 times in case of a 500 response
octokit.request("/").catch((error) => {
if (error.request.request.retryCount) {
console.log(
request failed after ${error.request.request.retryCount} retries
,
);
}
console.error(error); });
To override the default doNotRetry
list:
const octokit = new MyOctokit({ auth: "secret123", retry: { doNotRetry: [ /* List of HTTP 4xx/5xx status codes */ ], }, });
To override the number of retries:
const octokit = new MyOctokit({ auth: "secret123", request: { retries: 1 }, });
You can manually ask for retries for any request by passing { request: { retries: numRetries, retryAfter: delayInSeconds }}
. Note that the doNotRetry
option from the constructor is ignored in this case, requests will be retried no matter their response code.
octokit
.request("/", { request: { retries: 1, retryAfter: 1 } })
.catch((error) => {
if (error.request.request.retryCount) {
console.log(
request failed after ${error.request.request.retryCount} retries
,
);
}
console.error(error);
});
Pass { retry: { enabled: false } }
to disable this plugin.
Contributing
See CONTRIBUTING.md