@mlaursen/release-script
Version:
The release script I normally use for packages I publish to npm
29 lines (28 loc) • 1.19 kB
JavaScript
import confirm from "@inquirer/confirm";
import { Octokit } from "@octokit/core";
import dotenv from "dotenv";
export async function createRelease(options) {
const { body, override, owner = "mlaursen", repo, prerelease, envPath = ".env.local", tagName, } = options;
dotenv.config({ path: envPath, override, quiet: true });
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
try {
const response = await octokit.request("POST /repos/{owner}/{repo}/releases", {
owner,
repo,
tag_name: tagName,
body,
prerelease,
});
console.log(`Created release: ${response.data.html_url}`);
}
catch (e) {
console.error(e);
console.log();
console.log("The npm token is most likely expired or never created. Update the `.env.local` to include the latest GITHUB_TOKEN");
console.log("Regenerate the token: https://github.com/settings/personal-access-tokens");
if (!(await confirm({ message: "Try creating the Github release again?" }))) {
process.exit(1);
}
return createRelease({ ...options, override: true });
}
}