X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=_common%2Fgithub.js;h=aa98074ccfc9ed2fc8af7d5e6c13e4f75badded7;hb=b1d3b44f966332434d8ec49b2a0df569e9bf8c16;hp=aeaf025844e642ddea7ea920528e2ca3c2cb4d56;hpb=c32ea6d98e263436d3409da7ef0e4177b9c27da5;p=webi-installers%2F.git diff --git a/_common/github.js b/_common/github.js index aeaf025..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: [], @@ -33,7 +50,7 @@ function getAllReleases(request, owner, repo, baseurl = 'https://api.github.com' 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 @@ -53,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)); } ); }