# git-cliff ~ configuration file # https://git-cliff.org/docs/configuration [changelog] body = """ {% if version -%} ## [{{ version }}] - {{ 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.breaking %}**BREAKING:** {% endif %}{% if commit.scope %}[{{ commit.scope }}] {% endif %}{{ commit.message | split(pat="\n") | first | trim | upper_first }} {% endfor -%} {% if not loop.last %} {% endif -%} {% endfor -%} """ header = """ # Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versions use date-based format: `YYYYMMDD.NN`. """ render_always = true trim = true [git] commit_parsers = [ { body = "(?i)security", group = "Security" }, { group = "Added", message = "^(Add|Create|Enable|Implement|Introduce|Ship)\\b" }, { group = "Added", message = "^feat(\\([^)]+\\))?!?:" }, { group = "Changed", message = "^(Enhance|Improve|Refresh|Rework|Revamp|Update)\\b" }, { group = "Changed", message = "^perf(\\([^)]+\\))?!?:" }, { group = "Changed", message = "^refactor(\\([^)]+\\))?!?:" }, { group = "Changed", message = "^revert(\\([^)]+\\))?!?:" }, { group = "Deprecated", message = "(?i)^.*deprecat.*$" }, { group = "Removed", message = "(?i)^.*(remove|delete|drop).*$" }, { group = "Fixed", message = "^(Avoid|Correct|Fix|Harden|Prevent|Preserve|Repair|Resolve|Stabilize)\\b" }, { group = "Fixed", message = "^fix(\\([^)]+\\))?!?:" }, { group = "Security", message = "(?i)^.*security.*$" }, { message = "^build(\\([^)]+\\))?!?:", skip = true }, { message = "^chore(\\([^)]+\\))?!?:", skip = true }, { message = "^chore\\(release\\):", skip = true }, { message = "^ci(\\([^)]+\\))?!?:", skip = true }, { message = "^docs(\\([^)]+\\))?!?:", skip = true }, { message = "^merge", skip = true }, { message = "^style(\\([^)]+\\))?!?:", skip = true }, { message = "^test(\\([^)]+\\))?!?:", skip = true }, ] conventional_commits = true filter_commits = true filter_unconventional = false protect_breaking_commits = true sort_commits = "oldest" split_commits = false tag_pattern = "[0-9]{8}\\.[0-9]{2}" topo_order = false