From a3ba53a0d8d39d883d47e1cdbbb51d2754e747f7 Mon Sep 17 00:00:00 2001 From: Thaddee Tyl Date: Sun, 26 Jun 2016 18:01:48 +0200 Subject: [PATCH] GitHub auth: user token selection supports remaining requests --- lib/github-auth.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/github-auth.js b/lib/github-auth.js index a9f067a..597ab72 100644 --- a/lib/github-auth.js +++ b/lib/github-auth.js @@ -154,12 +154,15 @@ function getReqRemainingToken() { if (highestReqRemaining > 0) { return highestReqRemainingToken; } else { - // Go through the user tokens, keep the first one which has reset. + // Go through the user tokens. + // Keep the first one which is usable or has reset. var now = +new Date(); for (var token of reqReset.keys()) { - if (reqReset.get(token) < now) { - // We are past the rate limit reset. + var hasRemainingReqs = reqRemaining.get(token) > 0; + var isBeyondRateLimitReset = reqReset.get(token) < now; + if (hasRemainingReqs || isBeyondRateLimitReset) { highestReqRemainingToken = token; + highestReqRemaining = reqRemaining.get(token); return highestReqRemainingToken } }