Files
setup-bun/src/utils/getGithubRelease.ts
2022-07-12 18:53:38 +02:00

36 lines
1.1 KiB
TypeScript

import { getInput } from '@actions/core';
import fetch from 'node-fetch';
export interface Asset {
name: string;
browser_download_url: string;
}
export interface Release {
name: string;
html_url: string;
tag_name: string;
message?: string;
assets: Asset[];
version: string;
}
export default async(version: string, token: string, miscTestBuilds: boolean): Promise<Release> => {
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : 'oven-sh/bun'
let url;
if (version === 'latest' || miscTestBuilds) url = `https://api.github.com/repos/${repository}/releases/latest`;
else url = `https://api.github.com/repos/${repository}/releases/tags/bun-v${version}`;
const release: any = await (await fetch(url, {
headers: {
'Content-Type': 'application/json',
'User-Agent': 'setup-bun-github-action',
'Authorization': token
}
})).json();
return {
...release,
version: miscTestBuilds ? `timestamp-v${new Date(release.name).getTime().toString()}` : release.tag_name.replace('bun-v', '')
};
}