{
  "version": 2,
  "outputCapture": "direct-nodejs",
  "$schema": "http://json-schema.org/schema",
  "$id": "theunderscorer-semantic-release",
  "title": "NX Semantic Release",
  "description": "Automate versioning and CHANGELOG generation.",
  "type": "object",
  "properties": {
    "preset": {
      "description": "Conventional commits Preset to use for the release.",
      "type": "string"
    },
    "presetConfig": {
      "description": "Conventional commits preset configuration to use for the release.",
      "type": "object"
    },
    "githubOptions": {
      "description": "Options for @semantic-release/github executor",
      "type": "object"
    },
    "dryRun": {
      "description": "See what commands would be run, without committing to git or updating files.",
      "type": "boolean"
    },
    "ci": {
      "description": "Set to false to skip CI checks.",
      "type": "boolean"
    },
    "changelog": {
      "description": "Whether to generate changelog.",
      "type": "boolean"
    },
    "changelogFile": {
      "description": "Path to changelog file.",
      "type": "string"
    },
    "repositoryUrl": {
      "description": "The URL of the repository to release from.",
      "type": "string"
    },
    "linkCompare": {
      "description": "Whether to include a link to compare changes since previous release in the release note.",
      "type": "boolean"
    },
    "linkReferences": {
      "description": "Whether to include a link to issues and commits in the release note.",
      "type": "boolean"
    },
    "releaseRules": {
      "description": "Release rules are used when deciding if the commits since the last release warrant a new release.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "type": "object",
            "properties": {
              "type": "string",
              "scope": "string",
              "release": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              }
            },
            "required": [
              "release"
            ]
          }
        }
      ]
    },
    "parserOpts": {
      "description": "Parser options used by commit-analyzer and @semantic-release/release-notes-generator and @semantic-release/changelog",
      "type": "object"
    },
    "writerOpts": {
      "description": "Writer options used by commit-analyzer and @semantic-release/release-notes-generator",
      "type": "object"
    },
    "tagFormat": {
      "description": "Tag format to use.",
      "type": "string"
    },
    "npm": {
      "description": "Whether to bump package.json version and publish to registry (if package is public).",
      "type": "boolean"
    },
    "packageJsonDir": {
      "description": "Path to package.json file (usable only if npm is true).",
      "type": "string"
    },
    "git": {
      "description": "Whether to create git commit and tag.",
      "type": "boolean"
    },
    "github": {
      "description": "Whether to create github release.",
      "type": "boolean"
    },
    "buildTarget": {
      "description": "The target of the build command.",
      "type": "string"
    },
    "outputPath": {
      "description": "The path to the output directory.",
      "type": "string"
    },
    "commitMessage": {
      "description": "The commit message to use when committing the release.",
      "type": "string"
    },
    "gitAssets": {
      "description": "Path to assets to include in git commit.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "plugins": {
      "description": "Additional plugins for semantic-release. Note: these plugins will be added before @semantic-release/git, which means that you can assets generated by them to git as well.",
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            }
          }
        ]
      }
    },
    "branches": {
      "description": "Branches configuration for workflow release",
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "maxLength": 100,
            "minLength": 1
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              "channel": {
                "oneOf": [
                  {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 1
                  },
                  {
                    "const": false
                  }
                ]
              },
              "range": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              "prerelease": {
                "oneOf": [
                  {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 1
                  },
                  {
                    "type": "boolean"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "name"
            ]
          }
        ]
      },
      "uniqueItems": true
    }
  }
}
