Skip to content
This repository has been archived by the owner on Apr 20, 2023. It is now read-only.

Commit

Permalink
Address feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
codebytere committed May 6, 2020
1 parent 444e748 commit 97bfded
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 20 deletions.
36 changes: 25 additions & 11 deletions src/download.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

var path = require('path');
const { downloadArtifact } = require('@electron/get');
const { downloadArtifact, getDownloadUrl } = require('@electron/get');
var semver = require('semver');
var rename = require('gulp-rename');
var es = require('event-stream');
Expand Down Expand Up @@ -31,24 +31,38 @@ function download(opts, cb) {
version: opts.version,
platform: opts.platform,
arch,
artifactName: opts.assetName,
token: opts.token
};

(opts.repo ? getDownloadUrl(opts.repo, downloadOptions) : Promise.resolve({})).then(({
err, downloadURL
}) => {
if (err) return cb(err)

if (downloadURL) {
downloadOptions['mirrorOptions'] = { mirror: downloadUrl }
}
if (opts.repo) {
getDownloadUrl(opts.repo, downloadOptions)
.then(({err, downloadUrl, assetName}) => {
if (err) return cb(err)

downloadOptions['mirrorOptions'] = {
mirror: downloadUrl,
customFilename: assetName
};

downloadOptions['artifactName'] = assetName;
downloadOptions['unsafelyDisableChecksums'] = true;

downloadArtifact(downloadOptions).then(zipFilePath => {
return cb(null, zipFilePath)
}).catch(err => {
return cb(err);
});
})
.catch(err => {
return cb(err);
});
} else {
downloadArtifact(downloadOptions).then(zipFilePath => {
return cb(null, zipFilePath)
}).catch(err => {
return cb(err);
});
});
}
}

function getDarwinLibFFMpegPath(opts) {
Expand Down
28 changes: 19 additions & 9 deletions src/util.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
'use strict';

const { Octokit } = require('@octokit/rest');
const got = require('got');

function startsWith (haystack, needle) {
return haystack.substr(0, needle.length) === needle;
};

async function getDownloadUrl(repo, { version, platform, arch, token }) {
const [owner, repository] = repo.split('/');
const octokit = new Octokit({ auth: `token ${token}`});
async function getDownloadUrl(repoUrl, { version, platform, arch, token }) {
const [owner, repo] = repoUrl.split('/');
const octokit = new Octokit({ auth: token });

const { data: release } = await octokit.repos.getReleaseByTag({
owner,
repository,
repo,
tag: version,
});

Expand All @@ -22,7 +23,7 @@ async function getDownloadUrl(repo, { version, platform, arch, token }) {

const { data: assets } = await octokit.repos.listAssetsForRelease({
owner,
repository,
repo,
release_id: release.id,
});

Expand All @@ -35,16 +36,25 @@ async function getDownloadUrl(repo, { version, platform, arch, token }) {
return { error: `Release asset for ${version} not found` }
}

const { headers: { location }} = await octokit.repos.getReleaseAsset({
const requestOptions = await octokit.repos.getReleaseAsset.endpoint({
owner,
repository,
repo,
asset_id: asset.id,
headers: {
accept: 'application/octet-stream'
Accept: 'application/octet-stream'
}
});

return { error: null, location };
const { url, headers } = requestOptions;
headers.authorization = `token ${token}`;

const response = await got(url, {
followRedirect: false,
method: 'HEAD',
headers
});

return { error: null, location: response.headers.location, assetName: asset.name };
}

module.exports = {
Expand Down

0 comments on commit 97bfded

Please sign in to comment.