Implements request retries for server 4xx/5xx responses except 400, 401, 403 and 404.
const Octokit = require('@octokit/rest')
.plugin(require('@octokit/plugin-retry'))
const octokit = new Octokit()
// 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 Octokit({
retry: {
doNotRetry: [ /* List of HTTP 4xx/5xx status codes */ ]
}
})You can manually ask for retries for any request by passing { request: { retries: numRetries, retryAfter: delayInSeconds }}
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.