From 397c66bac949c02a75fc12badee5219da1daccd4 Mon Sep 17 00:00:00 2001 From: David Pascaud Date: Tue, 6 Aug 2019 17:50:33 +0200 Subject: [PATCH] Get repos: allow recursive api call when repos > 50 (paginated limit) --- lib/api.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/api.js b/lib/api.js index 1037ff7..c4ed01f 100644 --- a/lib/api.js +++ b/lib/api.js @@ -22,16 +22,22 @@ function api(endpoint, method) { .set('X-Api-Token', config.token); } -function getRepositories(cb) { - api('repositories').end(function (err, res) { +function getRepositories(cb, uri = 'repositories', carry = {entries:[]}) { + api(uri).end(function (err, res) { if (err) { reportError(err); } - cb(res.body); + if (! res.body.meta.next_uri) { + return cb(mergedEntries(res.body.entries, carry.entries)); + } + + return getRepositories(cb, res.body.meta.next_uri, mergedEntries(res.body.entries, carry.entries)); }); } +const mergedEntries = (a, b) => ({entries: [...a, ...b]}) + function repo(name, cb) { logger.spin('Fetching repos, please wait ...'); getRepositories(function (repos) {