retry requests
This commit is contained in:
parent
6247f9299a
commit
2e7c800734
@ -31,7 +31,8 @@ class GitHubReleaser {
|
|||||||
return this.github.repos.createRelease(params);
|
return this.github.repos.createRelease(params);
|
||||||
}
|
}
|
||||||
allReleases(params) {
|
allReleases(params) {
|
||||||
return this.github.paginate.iterator(this.github.repos.listReleases.endpoint.merge(params));
|
const updatedParams = Object.assign({ per_page: 100 }, params);
|
||||||
|
return this.github.paginate.iterator(this.github.repos.listReleases.endpoint.merge(updatedParams));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.GitHubReleaser = GitHubReleaser;
|
exports.GitHubReleaser = GitHubReleaser;
|
||||||
|
16
lib/main.js
16
lib/main.js
@ -21,7 +21,21 @@ function run() {
|
|||||||
if (!util_1.isTag(config.github_ref)) {
|
if (!util_1.isTag(config.github_ref)) {
|
||||||
throw new Error(`⚠️ GitHub Releases requires a tag`);
|
throw new Error(`⚠️ GitHub Releases requires a tag`);
|
||||||
}
|
}
|
||||||
const gh = new github_2.GitHub(config.github_token);
|
github_2.GitHub.plugin(require("@octokit/plugin-throttling"));
|
||||||
|
const gh = new github_2.GitHub(config.github_token, {
|
||||||
|
onRateLimit: (retryAfter, options) => {
|
||||||
|
console.warn(`Request quota exhausted for request ${options.method} ${options.url}`);
|
||||||
|
if (options.request.retryCount === 0) {
|
||||||
|
// only retries once
|
||||||
|
console.log(`Retrying after ${retryAfter} seconds!`);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onAbuseLimit: (retryAfter, options) => {
|
||||||
|
// does not retry, only logs a warning
|
||||||
|
console.warn(`Abuse detected for request ${options.method} ${options.url}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
let rel = yield github_1.release(config, new github_1.GitHubReleaser(gh));
|
let rel = yield github_1.release(config, new github_1.GitHubReleaser(gh));
|
||||||
if (config.input_files) {
|
if (config.input_files) {
|
||||||
util_1.paths(config.input_files).forEach((path) => __awaiter(this, void 0, void 0, function* () {
|
util_1.paths(config.input_files).forEach((path) => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
15
package-lock.json
generated
15
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "action-gh-release",
|
"name": "action-gh-release",
|
||||||
"version": "0.1.2",
|
"version": "0.1.3",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -440,6 +440,14 @@
|
|||||||
"universal-user-agent": "^2.0.3"
|
"universal-user-agent": "^2.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@octokit/plugin-throttling": {
|
||||||
|
"version": "2.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-2.6.0.tgz",
|
||||||
|
"integrity": "sha512-E0xQrcD36sVEeBhut6j9nWX38vm/1LKMRSUqjvJ/mqGLXfHr4jYMsrR3I/nT2QC0eJL1/SKMt7zxOt7pZiFhDA==",
|
||||||
|
"requires": {
|
||||||
|
"bottleneck": "^2.15.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@octokit/request": {
|
"@octokit/request": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.1.0.tgz",
|
||||||
@ -943,6 +951,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz",
|
||||||
"integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A=="
|
"integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A=="
|
||||||
},
|
},
|
||||||
|
"bottleneck": {
|
||||||
|
"version": "2.19.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
|
||||||
|
"integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw=="
|
||||||
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.1.0",
|
"@actions/core": "^1.1.0",
|
||||||
"@actions/github": "^1.1.0",
|
"@actions/github": "^1.1.0",
|
||||||
|
"@octokit/plugin-throttling": "^2.6.0",
|
||||||
"glob": "^7.1.4",
|
"glob": "^7.1.4",
|
||||||
"mime": "^2.4.4"
|
"mime": "^2.4.4"
|
||||||
},
|
},
|
||||||
|
@ -70,8 +70,9 @@ export class GitHubReleaser implements Releaser {
|
|||||||
owner: string;
|
owner: string;
|
||||||
repo: string;
|
repo: string;
|
||||||
}): AsyncIterableIterator<{ data: Release[] }> {
|
}): AsyncIterableIterator<{ data: Release[] }> {
|
||||||
|
const updatedParams = { per_page: 100, ...params };
|
||||||
return this.github.paginate.iterator(
|
return this.github.paginate.iterator(
|
||||||
this.github.repos.listReleases.endpoint.merge(params)
|
this.github.repos.listReleases.endpoint.merge(updatedParams)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
20
src/main.ts
20
src/main.ts
@ -10,7 +10,25 @@ async function run() {
|
|||||||
if (!isTag(config.github_ref)) {
|
if (!isTag(config.github_ref)) {
|
||||||
throw new Error(`⚠️ GitHub Releases requires a tag`);
|
throw new Error(`⚠️ GitHub Releases requires a tag`);
|
||||||
}
|
}
|
||||||
const gh = new GitHub(config.github_token);
|
GitHub.plugin(require("@octokit/plugin-throttling"));
|
||||||
|
const gh = new GitHub(config.github_token, {
|
||||||
|
onRateLimit: (retryAfter, options) => {
|
||||||
|
console.warn(
|
||||||
|
`Request quota exhausted for request ${options.method} ${options.url}`
|
||||||
|
);
|
||||||
|
if (options.request.retryCount === 0) {
|
||||||
|
// only retries once
|
||||||
|
console.log(`Retrying after ${retryAfter} seconds!`);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onAbuseLimit: (retryAfter, options) => {
|
||||||
|
// does not retry, only logs a warning
|
||||||
|
console.warn(
|
||||||
|
`Abuse detected for request ${options.method} ${options.url}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
let rel = await release(config, new GitHubReleaser(gh));
|
let rel = await release(config, new GitHubReleaser(gh));
|
||||||
if (config.input_files) {
|
if (config.input_files) {
|
||||||
paths(config.input_files).forEach(async path => {
|
paths(config.input_files).forEach(async path => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user