From 324039ba0a2f9b3e6099a2d32812699a8f72a51d Mon Sep 17 00:00:00 2001 From: Namrata Jha Date: Wed, 22 Dec 2021 15:22:21 +0000 Subject: [PATCH] logs to check rate limit --- dist/index.js | 24 ++++++++++++++++++- src/version/delete-version.ts | 44 +++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/dist/index.js b/dist/index.js index 52ec2ab..fd4f98d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -177,7 +177,7 @@ exports.Input = Input; "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.deletePackageVersions = exports.deletePackageVersion = void 0; +exports.deletePackageVersions = exports.deletePackageVersion = exports.getRateLimit = void 0; const rxjs_1 = __nccwpck_require__(5805); const operators_1 = __nccwpck_require__(7801); const graphql_1 = __nccwpck_require__(6320); @@ -188,7 +188,29 @@ const mutation = ` success } }`; +const ratelimitQuery = ` +query { + viewer { + login + } + rateLimit { + limit + cost + remaining + resetAt + node + } +}`; +function getRateLimit(token) { + return rxjs_1.from(graphql_1.graphql(token, ratelimitQuery, { + headers: { + Accept: 'application/vnd.github.package-deletes-preview+json' + } + })); +} +exports.getRateLimit = getRateLimit; function deletePackageVersion(packageVersionId, token) { + getRateLimit(token).pipe(operators_1.map(value => console.log(`login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}, node: ${value.ratelimit.node}`))); if (deleted === 99) { console.log(`reaching rate limit`); operators_1.delay(5000); diff --git a/src/version/delete-version.ts b/src/version/delete-version.ts index 1e6c079..b158815 100644 --- a/src/version/delete-version.ts +++ b/src/version/delete-version.ts @@ -18,10 +18,54 @@ const mutation = ` } }` +export interface RateLimitResponse { + viewer: { + login: string + } + ratelimit: { + limit: number + cost: number + remaining: number + resetAt: string + node: number + } +} + +const ratelimitQuery = ` +query { + viewer { + login + } + rateLimit { + limit + cost + remaining + resetAt + node + } +}` + +export function getRateLimit(token: string): Observable { + return from( + graphql(token, ratelimitQuery, { + headers: { + Accept: 'application/vnd.github.package-deletes-preview+json' + } + }) as Promise + ) +} + export function deletePackageVersion( packageVersionId: string, token: string ): Observable { + getRateLimit(token).pipe( + map(value => + console.log( + `login: ${value.viewer.login}, rate limit: ${value.ratelimit.limit}, cost: ${value.ratelimit.cost}, remaining: ${value.ratelimit.remaining}, node: ${value.ratelimit.node}` + ) + ) + ) if (deleted === 99) { console.log(`reaching rate limit`) delay(5000)