{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"Context": {
"title": "Context",
"description": "Represents contexts of projects.",
"type": "object",
"required": [
"name",
"version",
"url"
],
"properties": {
"name": {
"description": "The name of the project.",
"$ref": "#/$defs/NonEmptyString"
},
"version": {
"description": "The version of the project.",
"$ref": "#/$defs/NonEmptyString"
},
"url": {
"description": "The URL of the project.",
"$ref": "#/$defs/NonEmptyString"
}
},
"additionalProperties": false
},
"Paths": {
"title": "Paths",
"description": "Specifies locations of fragments and the changelog.",
"type": "object",
"properties": {
"directory": {
"description": "The directory containing fragments.",
"$ref": "#/$defs/NonEmptyString",
"default": "changes"
},
"output": {
"description": "The file containing the changelog.",
"$ref": "#/$defs/NonEmptyString",
"default": "CHANGELOG.md"
}
},
"additionalProperties": false
},
"NonEmptyString": {
"type": "string",
"minLength": 1
},
"Start": {
"description": "Marks the location in the changelog to start writing entries after.",
"$ref": "#/$defs/NonEmptyString"
},
"Level": {
"type": "integer",
"minimum": 1
},
"Levels": {
"title": "Levels",
"description": "Defines which heading levels to use.",
"type": "object",
"properties": {
"entry": {
"description": "The heading level of the entry title.",
"$ref": "#/$defs/Level",
"default": 2
},
"section": {
"description": "The heading level of individual sections.",
"$ref": "#/$defs/Level",
"default": 3
}
},
"additionalProperties": false
},
"Character": {
"type": "string",
"minLength": 1,
"maxLength": 1
},
"Indents": {
"title": "Indents",
"description": "Specifies which characters to use for indenting.",
"type": "object",
"properties": {
"heading": {
"description": "The character to use for headings.",
"$ref": "#/$defs/Character",
"default": "#"
},
"bullet": {
"description": "The character to use for indenting.",
"$ref": "#/$defs/Character",
"default": "-"
}
},
"additionalProperties": false
},
"Formats": {
"title": "Formats",
"description": "Defines formats to use for rendering entry titles and fragments.",
"type": "object",
"properties": {
"title": {
"description": "The format used for rendering entry titles.",
"$ref": "#/$defs/NonEmptyString",
"default": "{{version}} ({{date}})"
},
"fragment": {
"description": "The format used for rendering fragments.",
"$ref": "#/$defs/NonEmptyString",
"default": "{{content}} (#{{id}})"
}
},
"additionalProperties": false
},
"Wrap": {
"type": "integer",
"minimum": 1
},
"Order": {
"description": "Defines which types to include, and in what order.",
"type": "array",
"items": {
"description": "The type to include.",
"$ref": "#/$defs/NonEmptyString"
}
},
"Types": {
"title": "Types",
"description": "Maps types to their titles.",
"type": "object",
"patternProperties": {
"^.+$": {
"$ref": "#/$defs/NonEmptyString"
}
},
"additionalProperties": false
}
},
"title": "changelogging",
"description": "changelogging configuration file.",
"type": "object",
"required": [
"context"
],
"properties": {
"context": {
"$ref": "#/$defs/Context"
},
"paths": {
"$ref": "#/$defs/Paths"
},
"start": {
"$ref": "#/$defs/Start",
"default": "<!-- changelogging: start -->"
},
"levels": {
"$ref": "#/$defs/Levels"
},
"indents": {
"$ref": "#/$defs/Indents"
},
"formats": {
"$ref": "#/$defs/Formats"
},
"wrap": {
"$ref": "#/$defs/Wrap",
"default": 100
},
"order": {
"$ref": "#/$defs/Order",
"default": ["security", "feature", "change", "fix", "deprecation", "removal", "internal"]
},
"types": {
"$ref": "#/$defs/Types",
"default": {
"security": "Security",
"feature": "Features",
"change": "Changes",
"fix": "Fixes",
"deprecation": "Deprecations",
"removal": "Removals",
"internal": "Internal"
}
}
},
"additionalProperties": false
}