{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/commitlint-commitlintrc/latest.json",
  "x-lintel": {
    "source": "https://www.schemastore.org/commitlintrc.json",
    "sourceSha256": "57fd0abb68bfc8cfa361b54fbf9cb553235dbc6beb1c48407cf9be38311eb720",
    "fileMatch": [
      ".commitlintrc",
      ".commitlintrc.json",
      ".commitlintrc.yaml",
      ".commitlintrc.yml"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "extends": {
      "description": "Resolvable ids to commitlint configurations to extend",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        }
      ]
    },
    "parserPreset": {
      "description": "Resolvable id to conventional-changelog parser preset to import and use",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "parserOpts": {}
          },
          "additionalProperties": false
        }
      ]
    },
    "helpUrl": {
      "description": "Custom URL to show upon failure",
      "type": "string"
    },
    "formatter": {
      "description": "Resolvable id to package, from node_modules, which formats the output",
      "type": "string"
    },
    "rules": {
      "description": "Rules to check against",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "$ref": "#/$defs/rule"
      }
    },
    "plugins": {
      "description": "Resolvable ids of commitlint plugins from node_modules",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ignores": {
      "description": "Additional commits to ignore, defined by ignore matchers",
      "type": "array",
      "items": {}
    },
    "defaultIgnores": {
      "description": "Whether commitlint uses the default ignore rules",
      "type": "boolean"
    }
  },
  "$defs": {
    "rule": {
      "oneOf": [
        {
          "description": "A rule",
          "type": "array",
          "prefixItems": [
            {
              "description": "Level: 0 disables the rule. For 1 it will be considered a warning, for 2 an error",
              "type": "number",
              "enum": [
                0,
                1,
                2
              ]
            },
            {
              "description": "Applicable: always|never: never inverts the rule",
              "type": "string",
              "enum": [
                "always",
                "never"
              ]
            },
            {
              "description": "Value: the value for this rule"
            }
          ],
          "minItems": 1,
          "maxItems": 3,
          "items": false
        }
      ]
    }
  }
}
