@favware/cliff-jumper
Version:
A small CLI tool to create a semantic release and git-cliff powered Changelog
127 lines (126 loc) • 8.27 kB
JSON
{
"$schema": "https://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"description": "The package name to release",
"type": "string"
},
"packagePath": {
"description": "The path to the current package. For non-monorepos this is just \".\"",
"type": "string"
},
"dryRun": {
"description": "Whether the package should be bumped or not. When this is set no actions will be taken and only the release strategy will be logged",
"type": "boolean",
"default": false
},
"skipAutomaticBump": {
"description": "Whether to skip bumping the version (useful if this is the first version, or if you have manually set the version)",
"type": "boolean",
"default": false
},
"monoRepo": {
"description": "Whether the package to be bumped resides in a mono repo,\nwhich enables Lerna-like scanning for what kind of version bump should be applied\nDefaults to \"true\" when \"org\" is set, false otherwise",
"type": "boolean",
"default": false
},
"org": {
"description": "The NPM org scope that should be used WITHOUT \"@\" sign or trailing \"/\"",
"type": "string"
},
"preid": {
"description": "The \"prerelease identifier\" to use as a prefix for the \"prerelease\" part of a semver",
"type": "string"
},
"identifierBase": {
"description": "The base number (0 or 1) to be used for the \"prerelease identifier\". Supply `false` to not use one.",
"type": ["boolean", "string"]
},
"commitMessageTemplate": {
"description": "A custom commit message template to use.\nDefaults to \"chore({{name}}): release {{full-name}}@{{new-version}}\"\n\nYou can use \"{{new-version}}\" in your template which will be dynamically replaced with whatever the new version is that will be published.\n\nYou can use \"{{name}}\" in your template, this will be replaced with the name provided through \"-n\", \"--name\" or the same value set in your config file.\n\nYou can use \"{{full-name}}\" in your template, this will be replaced \"{{name}}\" (when \"org\" is not provided), or \"@{{org}}/{{name}}\" (when \"org\" is provided).",
"type": "string"
},
"tagTemplate": {
"description": "A custom tag template to use.\n\nWhen \"org\" is provided this will default to \"@{{org}}/{{name}}@{{new-version}}\", for example \"@favware/cliff-jumper@1.0.0\"\nWhen \"org\" is not provided this will default to \"v{{new-version}}\", for example \"v1.0.0\"\n\nYou can use \"{{new-version}}\" in your template which will be dynamically replaced with whatever the new version is that will be published.\n\nYou can use \"{{org}}\" in your template, this will be replaced with the org provided through \"-o\", \"--org\" or the same value set in your config \nfile.\n\nYou can use \"{{name}}\" in your template, this will be replaced with the name provided through \"-n\", \"--name\" or the same value set in your config \nfile.\n\nYou can use \"{{full-name}}\" in your template, this will be replaced \"{{name}}\" (when \"org\" is not provided), or \"@{{org}}/{{name}}\" (when \"org\" is provided).",
"type": "string"
},
"changelogPrependFile": {
"description": "The file that git-cliff should use for the --prepend flag, defaults to ./CHANGELOG.md. This should be relative to the current working directory.",
"type": "string",
"default": "./CHANGELOG.md"
},
"skipCommit": {
"description": "Repeatable, each will be treated as a new entry. A list of SHA1 commit hashes that will be skipped in the changelog.",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"gitHostVariant": {
"description": "The git host variant. Git-cliff supports 4 hosting websites, GitHub, GitLab, Gitea, and BitBucket. By setting this option you control which api is used by git-cliff. Defaults to \"github\" for backwards compatibility.",
"type": "string",
"enum": ["github", "gitlab", "gitea", "bitbucket"],
"default": "github"
},
"gitRepo": {
"description": "The git repository to use for linking to issues and PRs in the changelog.\nYou can pass the unique string \"auto\" to automatically set this value as {{org}}/{{name}} as provided from --org and --name\nThis should be in the format \"owner/repo\"\nYou can use the \"GIT_REPO\" environment variable to automatically set this value",
"type": "string"
},
"gitToken": {
"description": "A token to authenticate requests to the Git host API. This can be a GitHub, GitLab, Gitea, or BitBucket token. Which is used is determined by \"--git-host-variant\". This is required when using the \"--git-repo\" option.\nYou can also set the one of the following environment variables.\n- GITHUB_TOKEN\n- GITLAB_TOKEN\n- GITEA_TOKEN\n- BITBUCKET_TOKEN\n- GH_TOKEN",
"type": "string"
},
"install": {
"description": "Whether to run npm install after bumping the version but before committing and creating a git tag. This is useful when you have a mono repo where bumping one package would then cause the lockfile to be out of date.",
"type": "boolean",
"default": false
},
"skipChangelog": {
"description": "Whether to skip updating your CHANGELOG.md (default `true` when CI=true, `false` otherwise)",
"type": "boolean",
"default": false
},
"skipTag": {
"description": "Whether to skip creating a git tag (default `true` when CI=true, `false` otherwise)",
"type": "boolean",
"default": false
},
"pushTag": {
"description": "Whether to push the tag to the remote repository.\nThis will simply execute \"git push && git push --tags\" so make sure you have configured git for pushing properly beforehand.",
"type": "boolean",
"default": false
},
"githubRelease": {
"description": "Note that this is only supported if \"--git-host-variant\" is set to \"github\"\nWhether to create a release on GitHub, requires \"pushTag\" to be enabled, otherwise there will be no tag to create a release from\nFor the repository the release is created on the value from \"githubRepo\" will be used\nIf the changelog section from git-cliff is empty, the release notes will be auto-generated by GitHub.",
"type": "boolean",
"default": false
},
"githubReleaseDraft": {
"description": "Note that this is only supported if \"--git-host-variant\" is set to \"github\"\nWhether the release should be a draft",
"type": "boolean",
"default": false
},
"githubReleasePrerelease": {
"description": "Note that this is only supported if \"--git-host-variant\" is set to \"github\"\nWhether the release should be a pre-release",
"type": "boolean",
"default": false
},
"githubReleaseLatest": {
"description": "Note that this is only supported if \"--git-host-variant\" is set to \"github\"\nWhether the release should be marked as the latest release, will try to read this value, then the value of --github-release, and then default to false. Please note that when setting --github-release-pre-release to `true` GitHub will prevent the release to be marked as latest an this option will essentially be ignored..",
"type": "boolean",
"default": false
},
"githubReleaseNameTemplate": {
"description": "Note that this is only supported if \"--git-host-variant\" is set to \"github\"\nA custom release name template to use.\n\nYou can use \"{{new-version}}\" in your template which will be dynamically replaced with whatever the new version is that will be published.\n\nYou can use \"{{name}}\" in your template, this will be replaced with the name provided through \"-n\", \"--name\" or the same value set in your config file.\n\nYou can use \"{{full-name}}\" in your template, this will be replaced \"{{name}}\" (when \"org\" is not provided), or \"@{{org}}/{{name}}\" (when \"org\" is provided).",
"type": "string"
},
"verbose": {
"description": "Whether to print verbose information",
"type": "boolean",
"default": false
}
},
"required": ["name", "packagePath"]
}