{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/semantic-release/latest.json",
  "title": "semantic-release Schema",
  "x-lintel": {
    "source": "https://www.schemastore.org/semantic-release.json",
    "sourceSha256": "0a471bd80eafbed9d250da67c2d6fbf2b6fab93d3cd1d627193875bf6a2c2168",
    "fileMatch": [
      ".releaserc",
      ".releaserc.yaml",
      ".releaserc.yml",
      ".releaserc.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "extends": {
      "description": "List of modules or file paths containing a shareable configuration. If multiple shareable configurations are set, they will be imported in the order defined with each configuration option taking precedence over the options defined in a previous shareable configuration",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "branches": {
      "description": "The branches on which releases should happen.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "#/$defs/branch-object"
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/branch-object"
              }
            ]
          }
        }
      ],
      "default": [
        "+([0-9])?(.{+([0-9]),x}).x",
        "master",
        "next",
        "next-major",
        {
          "name": "beta",
          "prerelease": true
        },
        {
          "name": "alpha",
          "prerelease": true
        }
      ]
    },
    "repositoryUrl": {
      "type": "string",
      "description": "The git repository URL"
    },
    "tagFormat": {
      "type": "string",
      "description": "The Git tag format used by semantic-release to identify releases. The tag name is generated with Lodash template and will be compiled with the version variable.",
      "default": "v${version}"
    },
    "plugins": {
      "type": "array",
      "description": "Define the list of plugins to use. Plugins will run in series, in the order defined",
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "array"
          },
          {
            "type": "object",
            "required": [
              "path"
            ],
            "properties": {
              "path": {
                "type": "string"
              }
            },
            "additionalProperties": true
          }
        ]
      },
      "default": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/npm",
        "@semantic-release/github"
      ]
    },
    "dryRun": {
      "type": "boolean",
      "description": "The objective of the dry-run mode is to get a preview of the pending release. Dry-run mode skips the following steps: prepare, publish, success and fail. In addition to this it prints the next version and release notes to the console"
    },
    "ci": {
      "type": "boolean",
      "description": "Set to false to skip Continuous Integration environment verifications. This allows for making releases from a local machine",
      "default": true
    }
  },
  "$defs": {
    "branch-object": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "channel": {
          "type": "string"
        },
        "range": {
          "type": "string"
        },
        "prerelease": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    }
  }
}
