From 8eb62e2210427485fea4985054a8f70b34005e5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 7 Oct 2020 18:14:45 -0400 Subject: [PATCH] fix: tests, get latest release tag recursively --- src/admin/versions.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/admin/versions.js b/src/admin/versions.js index 286c6de5cbd3..607315b75d38 100644 --- a/src/admin/versions.js +++ b/src/admin/versions.js @@ -10,8 +10,8 @@ let versionCacheLastModified = ''; const isPrerelease = /^v?\d+\.\d+\.\d+-.+$/; -function getLatestVersion(callback) { - var headers = { +function getLatestRelease(page, callback) { + const headers = { Accept: 'application/vnd.github.v3+json', 'User-Agent': encodeURIComponent('NodeBB Admin Control Panel/' + meta.config.title), }; @@ -19,8 +19,7 @@ function getLatestVersion(callback) { if (versionCacheLastModified) { headers['If-Modified-Since'] = versionCacheLastModified; } - - request('https://api.github.com/repos/NodeBB/NodeBB/tags', { + request('https://api.github.com/repos/NodeBB/NodeBB/tags?page=' + page, { json: true, headers: headers, timeout: 1000, @@ -34,7 +33,7 @@ function getLatestVersion(callback) { } if (res.statusCode !== 200) { - return callback(Error(res.statusMessage)); + return callback(new Error(res.statusMessage)); } releases = releases.filter(function (version) { @@ -45,6 +44,9 @@ function getLatestVersion(callback) { return semver.lt(a, b) ? 1 : -1; }); + if (!releases.length) { + return getLatestRelease(page + 1, callback); + } versionCache = releases[0]; versionCacheLastModified = res.headers['last-modified']; @@ -52,6 +54,10 @@ function getLatestVersion(callback) { }); } +function getLatestVersion(callback) { + getLatestRelease(1, callback); +} + exports.getLatestVersion = getLatestVersion; exports.isPrerelease = isPrerelease;