2022-07-11 10:00:02 +02:00
|
|
|
import fetch from 'node-fetch';
|
2022-07-28 07:53:26 +02:00
|
|
|
import { getArchitecture } from './getAsset.js';
|
2022-07-28 07:50:56 +02:00
|
|
|
export default async (version, token, fullRepository, customDownloadUrl, miscTestBuilds) => {
|
|
|
|
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : fullRepository.split('/').slice(3).join('/');
|
2022-07-11 09:45:23 +02:00
|
|
|
let url;
|
2022-07-28 07:50:56 +02:00
|
|
|
if (customDownloadUrl)
|
|
|
|
url = customDownloadUrl;
|
|
|
|
else if (version === 'latest' || miscTestBuilds)
|
2022-07-12 18:42:27 +02:00
|
|
|
url = `https://api.github.com/repos/${repository}/releases/latest`;
|
2022-07-11 09:45:23 +02:00
|
|
|
else
|
2022-07-25 22:31:43 +02:00
|
|
|
url = `https://api.github.com/repos/${repository}/releases/tags/${version.includes('canary') ? version : `bun-v${version}`}`;
|
2022-07-28 07:50:56 +02:00
|
|
|
if (customDownloadUrl) {
|
|
|
|
return {
|
|
|
|
name: 'custom',
|
|
|
|
version: version + Math.random().toString(36).slice(-8),
|
|
|
|
html_url: customDownloadUrl,
|
|
|
|
tag_name: 'custom',
|
|
|
|
assets: [
|
|
|
|
{
|
2022-07-28 07:54:35 +02:00
|
|
|
name: `bun-${process.platform}-${getArchitecture()}.zip`,
|
2022-07-28 07:50:56 +02:00
|
|
|
browser_download_url: customDownloadUrl
|
|
|
|
}
|
|
|
|
]
|
|
|
|
};
|
|
|
|
}
|
2022-07-11 09:45:23 +02:00
|
|
|
const release = await (await fetch(url, {
|
|
|
|
headers: {
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
'User-Agent': 'setup-bun-github-action',
|
2022-07-16 18:47:40 +02:00
|
|
|
'Authorization': `token ${token}`
|
2022-07-11 09:45:23 +02:00
|
|
|
}
|
|
|
|
})).json();
|
2022-07-12 08:40:58 +02:00
|
|
|
return {
|
|
|
|
...release,
|
2022-07-12 18:46:22 +02:00
|
|
|
version: miscTestBuilds ? `timestamp-v${new Date(release.name).getTime().toString()}` : release.tag_name.replace('bun-v', '')
|
2022-07-12 08:40:58 +02:00
|
|
|
};
|
2022-07-11 09:45:23 +02:00
|
|
|
};
|