[changelog]
header = ""
body = """
{% if version %}## {{ version | trim_start_matches(pat="v") }}{% else %}## Unreleased{% endif %}
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{% for commit in commits %}
- {% if commit.scope %}**{{ commit.scope }}:** {% endif %}{{ commit.message | upper_first }} ({{ commit.id | truncate(length=7, end="") }})
{%- endfor %}
{% endfor %}
"""
trim = true
footer = ""
[git]
conventional_commits = true
filter_unconventional = true
split_commits = false
commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->Features" },
{ message = "^fix", group = "<!-- 1 -->Bug Fixes" },
{ message = "^perf", group = "<!-- 2 -->Performance" },
{ message = "^refactor", group = "<!-- 3 -->Refactor" },
{ message = "^docs", group = "<!-- 4 -->Documentation" },
{ message = "^build", group = "<!-- 5 -->Build & Tooling" },
{ message = "^ci", group = "<!-- 6 -->CI" },
{ message = "^test", group = "<!-- 7 -->Tests" },
{ message = "^style", skip = true },
{ message = "^chore", skip = true },
{ message = "^revert", group = "<!-- 8 -->Reverts" },
]
protect_breaking_commits = true
filter_commits = false
tag_pattern = "v[0-9]*"
sort_commits = "newest"