UNPKG

@semantic-release/github

Version:

semantic-release plugin to publish a GitHub release and comment on released Pull Requests/Issues

250 lines (205 loc) 9.71 kB
import { inspect } from "node:util"; import { createRequire } from "node:module"; const require = createRequire(import.meta.url); import { isString } from "lodash-es"; const pkg = require("../../package.json"); const HOMEPAGE = pkg.homepage; const stringify = (object) => isString(object) ? object : inspect(object, { breakLength: Number.POSITIVE_INFINITY, depth: 2, maxArrayLength: 5, }); const linkify = (file) => `${HOMEPAGE}/blob/master/${file}`; export function EINVALIDASSETS({ assets }) { return { message: "Invalid `assets` option.", details: `The [assets option](${linkify( "README.md#assets", )}) must be an \`Array\` of \`Strings\` or \`Objects\` with a \`path\` property. Your configuration for the \`assets\` option is \`${stringify(assets)}\`.`, }; } export function EINVALIDSUCCESSCOMMENT({ successComment }) { return { message: "Invalid `successComment` option.", details: `The [successComment option](${linkify( "README.md#successcomment", )}) if defined, must be a non empty \`String\`. Your configuration for the \`successComment\` option is \`${stringify( successComment, )}\`.`, }; } export function EINVALIDFAILTITLE({ failTitle }) { return { message: "Invalid `failTitle` option.", details: `The [failTitle option](${linkify( "README.md#failtitle", )}) if defined, must be a non empty \`String\`. Your configuration for the \`failTitle\` option is \`${stringify( failTitle, )}\`.`, }; } export function EINVALIDFAILCOMMENT({ failComment }) { return { message: "Invalid `failComment` option.", details: `The [failComment option](${linkify( "README.md#failcomment", )}) if defined, must be a non empty \`String\`. Your configuration for the \`failComment\` option is \`${stringify( failComment, )}\`.`, }; } export function EINVALIDLABELS({ labels }) { return { message: "Invalid `labels` option.", details: `The [labels option](${linkify( "README.md#options", )}) if defined, must be an \`Array\` of non empty \`String\`. Your configuration for the \`labels\` option is \`${stringify(labels)}\`.`, }; } export function EINVALIDASSIGNEES({ assignees }) { return { message: "Invalid `assignees` option.", details: `The [assignees option](${linkify( "README.md#options", )}) must be an \`Array\` of non empty \`Strings\`. Your configuration for the \`assignees\` option is \`${stringify( assignees, )}\`.`, }; } export function EINVALIDRELEASEDLABELS({ releasedLabels }) { return { message: "Invalid `releasedLabels` option.", details: `The [releasedLabels option](${linkify( "README.md#options", )}) if defined, must be an \`Array\` of non empty \`String\`. Your configuration for the \`releasedLabels\` option is \`${stringify( releasedLabels, )}\`.`, }; } export function EINVALIDADDRELEASES({ addReleases }) { return { message: "Invalid `addReleases` option.", details: `The [addReleases option](${linkify( "README.md#options", )}) if defined, must be one of \`false|top|bottom\`. Your configuration for the \`addReleases\` option is \`${stringify( addReleases, )}\`.`, }; } export function EINVALIDDRAFTRELEASE({ draftRelease }) { return { message: "Invalid `draftRelease` option.", details: `The [draftRelease option](${linkify( "README.md#options", )}) if defined, must be a \`Boolean\`. Your configuration for the \`draftRelease\` option is \`${stringify( draftRelease, )}\`.`, }; } export function EINVALIDGITHUBURL() { return { message: "The git repository URL is not a valid GitHub URL.", details: `The **semantic-release** \`repositoryUrl\` option must a valid GitHub URL with the format \`<GitHub_or_GHE_URL>/<owner>/<repo>.git\`. By default the \`repositoryUrl\` option is retrieved from the \`repository\` property of your \`package.json\` or the [git origin url](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) of the repository cloned by your CI environment.`, }; } export function EMISMATCHGITHUBURL({ repositoryUrl, clone_url }) { return { message: "The git repository URL mismatches the GitHub URL.", details: `The **semantic-release** \`repositoryUrl\` option must have the same repository name and owner as the GitHub repo. Your configuration for the \`repositoryUrl\` option is \`${stringify(repositoryUrl)}\` and the \`clone_url\` of your GitHub repo is \`${stringify(clone_url)}\`. By default the \`repositoryUrl\` option is retrieved from the \`repository\` property of your \`package.json\` or the [git origin url](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) of the repository cloned by your CI environment. Note: If you have recently changed your GitHub repository name or owner, update the value in **semantic-release** \`repositoryUrl\` option and the \`repository\` property of your \`package.json\` respectively to match the new GitHub URL.`, }; } export function EINVALIDPROXY({ proxy }) { return { message: "Invalid `proxy` option.", details: `The [proxy option](${linkify( "README.md#proxy", )}) must be a \`String\` or an \`Objects\` with a \`host\` and a \`port\` property. Your configuration for the \`proxy\` option is \`${stringify(proxy)}\`.`, }; } export function EMISSINGREPO({ owner, repo }) { return { message: `The repository ${owner}/${repo} doesn't exist.`, details: `The **semantic-release** \`repositoryUrl\` option must refer to your GitHub repository. The repository must be accessible with the [GitHub API](https://developer.github.com/v3). By default the \`repositoryUrl\` option is retrieved from the \`repository\` property of your \`package.json\` or the [git origin url](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) of the repository cloned by your CI environment. If you are using [GitHub Enterprise](https://enterprise.github.com) please make sure to configure the \`githubUrl\` and \`githubApiPathPrefix\` [options](${linkify( "README.md#options", )}).`, }; } export function EGHNOPERMISSION({ owner, repo }) { return { message: `The GitHub token doesn't allow to push on the repository ${owner}/${repo}.`, details: `The user associated with the [GitHub token](${linkify( "README.md#github-authentication", )}) configured in the \`GH_TOKEN\` or \`GITHUB_TOKEN\` environment variable must allows to push to the repository ${owner}/${repo}. Please make sure the GitHub user associated with the token is an [owner](https://help.github.com/articles/permission-levels-for-a-user-account-repository/#owner-access-on-a-repository-owned-by-a-user-account) or a [collaborator](https://help.github.com/articles/permission-levels-for-a-user-account-repository/#collaborator-access-on-a-repository-owned-by-a-user-account) if the repository belong to a user account or has [write permissions](https://help.github.com/articles/managing-team-access-to-an-organization-repository) if the repository [belongs to an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization).`, }; } export function EINVALIDGHTOKEN({ owner, repo }) { return { message: "Invalid GitHub token.", details: `The [GitHub token](${linkify( "README.md#github-authentication", )}) configured in the \`GH_TOKEN\` or \`GITHUB_TOKEN\` environment variable must be a valid [personal token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line) allowing to push to the repository ${owner}/${repo}. Please make sure to set the \`GH_TOKEN\` or \`GITHUB_TOKEN\` environment variable in your CI with the exact value of the GitHub personal token.`, }; } export function ENOGHTOKEN({ owner, repo }) { return { message: "No GitHub token specified.", details: `A [GitHub personal token](${linkify( "README.md#github-authentication", )}) must be created and set in the \`GH_TOKEN\` or \`GITHUB_TOKEN\` environment variable on your CI environment. Please make sure to create a [GitHub personal token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line) and to set it in the \`GH_TOKEN\` or \`GITHUB_TOKEN\` environment variable on your CI environment. The token must allow to push to the repository ${owner}/${repo}.`, }; } export function EINVALIDRELEASEBODYTEMPLATE({ releaseBodyTemplate }) { return { message: "Invalid `releaseBodyTemplate` option.", details: `The [releaseBodyTemplate option](${linkify( "README.md#releaseBodyTemplate", )}) must be a non empty \`String\`. Your configuration for the \`releaseBodyTemplate\` option is \`${stringify( releaseBodyTemplate, )}\`.`, }; } export function EINVALIDRELEASENAMETEMPLATE({ releaseNameTemplate }) { return { message: "Invalid `releaseNameTemplate` option.", details: `The [releaseNameTemplate option](${linkify( "README.md#releaseNameTemplate", )}) must be a non empty \`String\`. Your configuration for the \`releaseNameTemplate\` option is \`${stringify( releaseNameTemplate, )}\`.`, }; } export function EINVALIDDISCUSSIONCATEGORYNAME({ discussionCategoryName }) { return { message: "Invalid `discussionCategoryName` option.", details: `The [discussionCategoryName option](${linkify( "README.md#discussionCategoryName", )}) if defined, must be a non empty \`String\`. Your configuration for the \`discussionCategoryName\` option is \`${stringify( discussionCategoryName, )}\`.`, }; }