[changelog]
header = """
# Changelog
All notable changes to this project will be documented in this file.
"""
body = """
{% if version and commits | length == 0 -%}
{% elif version -%}
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else -%}
## [Unreleased]
{% endif -%}
{% for group, commits in commits | group_by(attribute="group") -%}
### {{ group | striptags | trim }}
{% for commit in commits -%}
- {% if commit.scope %}**{{ commit.scope }}:** {% endif %}{% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | trim | upper_first }}
{% endfor %}
{% endfor -%}"""
footer = """
<!-- generated by git-cliff -->
"""
trim = true
[git]
conventional_commits = true
filter_unconventional = true
split_commits = false
protect_breaking_commits = true
filter_commits = true
tag_pattern = "v[0-9].*"
sort_commits = "oldest"
commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->Features" },
{ message = "^fix", group = "<!-- 1 -->Bug Fixes" },
{ message = "^perf", group = "<!-- 2 -->Performance" },
{ message = "^refactor", group = "<!-- 3 -->Refactoring" },
{ message = "^docs?", group = "<!-- 4 -->Documentation" },
{ message = "^test", group = "<!-- 5 -->Testing" },
{ message = "^build", group = "<!-- 6 -->Build" },
{ message = "^ci", group = "<!-- 7 -->CI" },
{ message = "^chore\\(release\\)", skip = true },
{ message = "^chore", group = "<!-- 8 -->Chores" },
{ message = "^revert", group = "<!-- 9 -->Reverts" },
{ message = "^merge", skip = true },
{ message = ".*", skip = true },
]