UNPKG

@mlaursen/release-script

Version:

The release script I normally use for packages I publish to npm

29 lines (28 loc) 1.19 kB
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 }); } }