{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/github-release-config.json",
  "$comment": "https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuration-options",
  "title": "GitHub automatically generated release notes config",
  "type": "object",
  "properties": {
    "changelog": {
      "type": "object",
      "properties": {
        "exclude": {
          "type": "object",
          "properties": {
            "labels": {
              "type": "array",
              "description": "A list of labels that exclude a pull request from appearing in release notes",
              "items": {
                "type": "string",
                "minLength": 1,
                "examples": ["ignore-for-release", "dependencies"]
              }
            },
            "authors": {
              "type": "array",
              "description": "A list of user or bot login handles whose pull requests are to be excluded from release notes",
              "items": {
                "type": "string",
                "minLength": 1,
                "examples": ["octocat"]
              }
            }
          },
          "additionalProperties": false
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "The title of a category of changes in release notes",
                "minLength": 1,
                "examples": [
                  "Breaking Changes",
                  "Exciting New Features",
                  "Features",
                  "Dependencies"
                ]
              },
              "labels": {
                "type": "array",
                "description": "Labels that qualify a pull request for this category. Use * as a catch-all for pull requests that didn't match any of the previous categories",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "examples": [
                    "*",
                    "Breaking Changes",
                    "Exciting New Features",
                    "Features",
                    "Dependencies"
                  ]
                }
              },
              "exclude": {
                "type": "object",
                "properties": {
                  "labels": {
                    "type": "array",
                    "description": "A list of labels that exclude a pull request from appearing in this category",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "examples": [
                        "Semver-Major",
                        "breaking-change",
                        "enhancement"
                      ]
                    }
                  },
                  "authors": {
                    "type": "array",
                    "description": "A list of user or bot login handles whose pull requests are to be excluded from this category",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "examples": ["octocat"]
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "required": ["title", "labels"]
          }
        }
      },
      "additionalProperties": false
    }
  }
}
