[git] section contains parsing and git-related configuration options that control how commits are processed and included in the changelog.
Conventional Commits
Parse commits according to the Conventional Commits specification.Conventional commits follow this format:Example:
Exclude commits that don’t match the conventional commits specification.Example:
Require all commits to be conventional. If any unconventional commits are found, changelog generation fails.Takes precedence over
filter_unconventional. Checking occurs after commit_parsers are applied.Example:Split commits on newlines, treating each line as an individual commit.Note: This violates conventional commits specification.Example:
Commit Processing
Regex-based preprocessors to modify commit messages before parsing.Each preprocessor has:
pattern- Regex pattern to matchreplace- Replacement string (optional)replace_command- Shell command for replacement (optional)
Regex-based parsers for extracting data from commits and assigning them to groups.Each parser can match on:
message- Commit message (description)body- Commit bodyfooter- Commit footersha- Commit SHAfield- Any commit field (e.g.,author.name)
group- Group name for the commitscope- Override commit scopedefault_scope- Default scope if none existsskip- Skip this commit
Prevent commits with breaking changes from being skipped by commit parsers.Example:
Filter out commits that are not matched by any commit parser.Example:
Fail with a non-zero exit code if any commit is not matched by commit parsers.Useful to enforce that all commits are classified. Commits explicitly skipped (with
skip = true) are not considered unmatched.Example:Tag Configuration
Regex pattern for matching git tags that represent releases.Can be overridden with
--tag-pattern argument.Example:Regex pattern to skip processing matched tags.Commits from skipped tags are dropped from the changelog.Can be overridden with
--skip-tags argument.Example:Regex pattern to exclude matched tags after applying
tag_pattern.Unlike skip_tags, commits from ignored tags are included in the next tag.Note: If a commit has multiple tags and any tag matches, all associated tags are ignored.Can be overridden with --ignore-tags argument.Example:Regex pattern to count only matched tags in the final result.Works like an inverted version of
ignore_tags - includes all commits but only counts specific tags.Can be overridden with --count-tags argument.Example:Include only tags that belong to the current branch.Example:
Commit Ordering
Process tags in topological order instead of chronological.Can also be set with
--topo-order flag.Example:Process commits in topological order instead of chronological.
false- Equivalent togit logtrue- Equivalent togit log --topo-order
Sort commits within each group/release.Allowed values:
oldest- Oldest commits firstnewest- Newest commits first
--sort argument.Example:Link Parsing
Extract external references from commits and convert them to URLs.Each link parser has:Extracted links are available in templates via
pattern- Regex pattern to matchhref- URL template (with capture group substitution)text- Link text template (optional)
commit.links.Advanced Options
Limit the total number of commits included in the changelog.Example:
Read and process commits from submodules (depth 1 only).Submodule commits are available in templates via
submodule_commits.Example:Include only commits that modify files matching these glob patterns.Note: When set, the current working directory is not included by default.Example:
Exclude commits that only modify files matching these glob patterns.Takes priority over
include_paths:- Commits touching both included and excluded paths are included
- Commits only modifying excluded paths are excluded