X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=_common%2Fgithub.js;h=aa98074ccfc9ed2fc8af7d5e6c13e4f75badded7;hb=05b8f37fb5d32c221a8f32ffffeb03b1f1eae614;hp=eb117ebb5028079c85228ffb96ff5c487e928a23;hpb=aa8e5f6bc399fd86af5b1cb15820a32974343764;p=webi-installers%2F.git diff --git a/_common/github.js b/_common/github.js index eb117eb..aa98074 100644 --- a/_common/github.js +++ b/_common/github.js @@ -1,5 +1,7 @@ 'use strict'; +require('dotenv').config(); + /** * Gets the releases for 'ripgrep'. This function could be trimmed down and made * for use with any github release. @@ -9,17 +11,32 @@ * @param {string} repo * @returns {PromiseLike | Promise} */ -function getAllReleases(request, owner, repo, baseurl = 'https://api.github.com') { +function getAllReleases( + request, + owner, + repo, + baseurl = 'https://api.github.com' +) { if (!owner) { return Promise.reject('missing owner for repo'); } if (!repo) { return Promise.reject('missing repo name'); } - return request({ + + var req = { url: `${baseurl}/repos/${owner}/${repo}/releases`, json: true - }).then((resp) => { + }; + // TODO I really don't like global config, find a way to do better + if (process.env.GITHUB_USERNAME) { + req.auth = { + user: process.env.GITHUB_USERNAME, + pass: process.env.GITHUB_TOKEN + }; + } + + return request(req).then((resp) => { const gHubResp = resp.body; const all = { releases: [], @@ -31,8 +48,9 @@ function getAllReleases(request, owner, repo, baseurl = 'https://api.github.com' release['assets'].forEach((asset) => { const name = asset['name']; all.releases.push({ + name: name, version: release['tag_name'], // TODO tags aren't always semver / sensical - lts: /\b(lts)\b/.test(release['tag_name']), + lts: /(\b|_)(lts)(\b|_)/.test(release['tag_name']), channel: !release['prerelease'] ? 'stable' : 'beta', date: (release['published_at'] || '').replace(/T.*/, ''), os: '', // will be guessed by download filename @@ -52,7 +70,7 @@ module.exports = getAllReleases; if (module === require.main) { getAllReleases(require('@root/request'), 'BurntSushi', 'ripgrep').then( function (all) { - console.log(JSON.stringify(all, null, 2)); + console.info(JSON.stringify(all, null, 2)); } ); }