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) {