{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/gitversion/versions/5.12.json",
  "title": "GitVersion Configuration",
  "description": "GitVersion configuration schema",
  "x-lintel": {
    "source": "https://gitversion.net/schemas/5.12/GitVersion.configuration.json",
    "sourceSha256": "0f2bdf030085dfe76b658e6560c683cb43deb2d9619111be38102587fd657e6b",
    "fileMatch": [
      "GitVersion.yml",
      "GitVersion.yaml",
      ".gitversion.yml",
      ".gitversion.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "assembly-file-versioning-format": {
      "description": "Specifies the format of AssemblyFileVersion and overwrites the value of assembly-file-versioning-scheme.",
      "type": "string"
    },
    "assembly-file-versioning-scheme": {
      "description": "The scheme to use when setting AssemblyFileVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'.",
      "enum": [
        "MajorMinorPatchTag",
        "MajorMinorPatch",
        "MajorMinor",
        "Major",
        "None"
      ]
    },
    "assembly-informational-format": {
      "description": "Specifies the format of AssemblyInformationalVersion. The default value is {InformationalVersion}.",
      "type": "string"
    },
    "assembly-versioning-format": {
      "description": "Specifies the format of AssemblyVersion and overwrites the value of assembly-versioning-scheme.",
      "type": "string"
    },
    "assembly-versioning-scheme": {
      "description": "The scheme to use when setting AssemblyVersion attribute. Can be 'MajorMinorPatchTag', 'MajorMinorPatch', 'MajorMinor', 'Major', 'None'.",
      "enum": [
        "MajorMinorPatchTag",
        "MajorMinorPatch",
        "MajorMinor",
        "Major",
        "None"
      ]
    },
    "branches": {
      "description": "The header for all the individual branch configuration.",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/BranchConfig"
      }
    },
    "build-metadata-padding": {
      "type": [
        "integer",
        "null"
      ]
    },
    "commit-date-format": {
      "format": "date-time",
      "pattern": "'yyyy-MM-dd'",
      "description": "The format to use when calculating the commit date. Defaults to 'yyyy-MM-dd'.",
      "type": "string"
    },
    "commit-message-incrementing": {
      "enum": [
        "Enabled",
        "Disabled",
        "MergeMessageOnly"
      ]
    },
    "commits-since-version-source-padding": {
      "type": [
        "integer",
        "null"
      ]
    },
    "continuous-delivery-fallback-tag": {
      "type": "string"
    },
    "ignore": {
      "description": "The header property for the ignore configuration.",
      "type": "object",
      "properties": {
        "commits-before": {
          "$ref": "#/$defs/Nullable%6012"
        },
        "sha": {
          "$ref": "#/$defs/array"
        }
      }
    },
    "increment": {
      "$ref": "#/$defs/Nullable%601"
    },
    "legacy-semver-padding": {
      "type": [
        "integer",
        "null"
      ]
    },
    "major-version-bump-message": {
      "format": "regex",
      "pattern": "'\\+semver:\\s?(breaking|major)'",
      "description": "The regex to match commit messages with to perform a major version increment. Default set to '\\+semver:\\s?(breaking|major)'",
      "type": "string"
    },
    "merge-message-formats": {
      "description": "Custom merge message formats to enable identification of merge messages that do not follow the built-in conventions.",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "minor-version-bump-message": {
      "format": "regex",
      "pattern": "'\\+semver:\\s?(feature|minor)'",
      "description": "The regex to match commit messages with to perform a minor version increment. Default set to '\\+semver:\\s?(feature|minor)'",
      "type": "string"
    },
    "next-version": {
      "description": "Allows you to bump the next version explicitly. Useful for bumping main or a feature branch with breaking changes",
      "type": "string"
    },
    "no-bump-message": {
      "format": "regex",
      "pattern": "'\\+semver:\\s?(none|skip)'",
      "description": "Used to tell GitVersion not to increment when in Mainline development mode. . Default set to '\\+semver:\\s?(none|skip)'",
      "type": "string"
    },
    "patch-version-bump-message": {
      "format": "regex",
      "pattern": "'\\+semver:\\s?(fix|patch)'",
      "description": "The regex to match commit messages with to perform a patch version increment. Default set to '\\+semver:\\s?(fix|patch)'",
      "type": "string"
    },
    "tag-prefix": {
      "description": "A regex which is used to trim Git tags before processing. Defaults to [vV]",
      "type": "string"
    },
    "tag-pre-release-weight": {
      "description": "The pre-release weight in case of tagged commits. Defaults to 60000.",
      "type": [
        "integer",
        "null"
      ]
    },
    "update-build-number": {
      "description": "Whether to update the build number in the project file. Defaults to true.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "mode": {
      "$ref": "#/$defs/Nullable%6011"
    }
  },
  "$defs": {
    "BranchConfig": {
      "type": "object",
      "properties": {
        "commit-message-incrementing": {
          "description": "Sets whether it should be possible to increment the version with special syntax in the commit message. Can be 'Disabled', 'Enabled' or 'MergeMessageOnly'.",
          "enum": [
            "Enabled",
            "Disabled",
            "MergeMessageOnly"
          ]
        },
        "increment": {
          "$ref": "#/$defs/Nullable%601"
        },
        "is-mainline": {
          "description": "When using Mainline mode, this indicates that this branch is a mainline. By default main and support/* are mainlines.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "is-release-branch": {
          "description": "Indicates this branch config represents a release branch in GitFlow.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "is-source-branch-for": {
          "description": "The branches that this branch is a source branch.",
          "type": "array",
          "items": {
            "description": "The branches that this branch is a source branch.",
            "type": "string"
          }
        },
        "pre-release-weight": {
          "description": "Provides a way to translate the PreReleaseLabel to a number.",
          "type": [
            "integer",
            "null"
          ]
        },
        "prevent-increment-of-merged-branch-version": {
          "description": "Prevent increment of merged branch version.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "regex": {
          "description": "The regex pattern to use to match this branch.",
          "type": "string"
        },
        "source-branches": {
          "description": "The source branches for this branch.",
          "type": "array",
          "items": {
            "description": "The source branches for this branch.",
            "type": "string"
          }
        },
        "tag": {
          "description": "The label to use for this branch. Can be 'useBranchName' to extract the label from the branch name.",
          "type": "string"
        },
        "tag-number-pattern": {
          "format": "regex",
          "pattern": "[/-](?<number>\\d+)[-/]",
          "description": "The regex pattern to use to extract the number from the branch name. Defaults to '[/-](?<number>\\d+)[-/]'.",
          "type": "string"
        },
        "track-merge-target": {
          "description": "Strategy which will look for tagged merge commits directly off the current branch.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "tracks-release-branches": {
          "description": "Indicates this branch config represents develop in GitFlow.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "mode": {
          "$ref": "#/$defs/Nullable%6011"
        }
      }
    },
    "Nullable`1": {
      "description": "The increment strategy for this branch. Can be 'Inherit', 'Patch', 'Minor', 'Major', 'None'.",
      "enum": [
        "None",
        "Major",
        "Minor",
        "Patch",
        "Inherit"
      ]
    },
    "Nullable`11": {
      "description": "The versioning mode for this branch. Can be 'ContinuousDelivery', 'ContinuousDeployment', 'Mainline'.",
      "enum": [
        "ContinuousDelivery",
        "ContinuousDeployment",
        "Mainline"
      ]
    },
    "DateTimeOffset": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "date": {
          "$ref": "#/$defs/DateTime"
        },
        "date-time": {
          "$ref": "#/$defs/DateTime"
        },
        "day": {
          "$ref": "#/$defs/integer"
        },
        "day-of-week": {
          "enum": [
            "Sunday",
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
          ],
          "readOnly": true
        },
        "day-of-year": {
          "$ref": "#/$defs/integer"
        },
        "hour": {
          "$ref": "#/$defs/integer"
        },
        "local-date-time": {
          "$ref": "#/$defs/DateTime"
        },
        "millisecond": {
          "$ref": "#/$defs/integer"
        },
        "minute": {
          "$ref": "#/$defs/integer"
        },
        "month": {
          "$ref": "#/$defs/integer"
        },
        "offset": {
          "$ref": "#/$defs/TimeSpan"
        },
        "second": {
          "$ref": "#/$defs/integer"
        },
        "ticks": {
          "$ref": "#/$defs/integer1"
        },
        "time-of-day": {
          "$ref": "#/$defs/TimeSpan"
        },
        "utc-date-time": {
          "$ref": "#/$defs/DateTime"
        },
        "utc-ticks": {
          "$ref": "#/$defs/integer1"
        },
        "year": {
          "$ref": "#/$defs/integer"
        }
      }
    },
    "DateTime": {
      "type": "string",
      "format": "date-time",
      "readOnly": true
    },
    "integer": {
      "type": "integer",
      "readOnly": true
    },
    "integer1": {
      "type": "integer",
      "readOnly": true
    },
    "number": {
      "type": "number",
      "readOnly": true
    },
    "TimeSpan": {
      "type": "object",
      "properties": {
        "days": {
          "$ref": "#/$defs/integer"
        },
        "hours": {
          "$ref": "#/$defs/integer"
        },
        "milliseconds": {
          "$ref": "#/$defs/integer"
        },
        "minutes": {
          "$ref": "#/$defs/integer"
        },
        "seconds": {
          "$ref": "#/$defs/integer"
        },
        "ticks": {
          "$ref": "#/$defs/integer1"
        },
        "total-days": {
          "$ref": "#/$defs/number"
        },
        "total-hours": {
          "$ref": "#/$defs/number"
        },
        "total-milliseconds": {
          "$ref": "#/$defs/number"
        },
        "total-minutes": {
          "$ref": "#/$defs/number"
        },
        "total-seconds": {
          "$ref": "#/$defs/number"
        }
      },
      "readOnly": true
    },
    "Nullable`12": {
      "format": "date-time",
      "pattern": "'yyyy-MM-ddTHH:mm:ss'",
      "description": "Commits before this date will be ignored. Format: yyyy-MM-ddTHH:mm:ss.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "date": {
          "$ref": "#/$defs/DateTime"
        },
        "date-time": {
          "$ref": "#/$defs/DateTime"
        },
        "day": {
          "$ref": "#/$defs/integer"
        },
        "day-of-week": {
          "enum": [
            "Sunday",
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
          ],
          "readOnly": true
        },
        "day-of-year": {
          "$ref": "#/$defs/integer"
        },
        "hour": {
          "$ref": "#/$defs/integer"
        },
        "local-date-time": {
          "$ref": "#/$defs/DateTime"
        },
        "millisecond": {
          "$ref": "#/$defs/integer"
        },
        "minute": {
          "$ref": "#/$defs/integer"
        },
        "month": {
          "$ref": "#/$defs/integer"
        },
        "offset": {
          "$ref": "#/$defs/TimeSpan"
        },
        "second": {
          "$ref": "#/$defs/integer"
        },
        "ticks": {
          "$ref": "#/$defs/integer1"
        },
        "time-of-day": {
          "$ref": "#/$defs/TimeSpan"
        },
        "utc-date-time": {
          "$ref": "#/$defs/DateTime"
        },
        "utc-ticks": {
          "$ref": "#/$defs/integer1"
        },
        "year": {
          "$ref": "#/$defs/integer"
        }
      }
    },
    "array": {
      "description": "A sequence of SHAs to be excluded from the version calculations.",
      "type": "array",
      "items": {
        "description": "A sequence of SHAs to be excluded from the version calculations.",
        "type": "string"
      }
    }
  }
}
