{
  "$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"]
}
