# Configuration file for git-cliff [changelog] trim = false 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.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). """ # https://tera.netlify.app/docs/#introduction body = """ {% if version -%} ## [[{{ version | trim_start_matches(pat="v") }}]{%- if release_link -%}({{ release_link }}){% endif %}] - {{ timestamp | date(format="%Y-%m-%d") }} {%- else -%} ## [Unreleased] {%- endif %} {% for group, commits in commits | group_by(attribute="group") -%} ### {{ group | upper_first }} {%- for commit in commits %} {%- set message = commit.message | upper_first %} {%- if commit.breaking %} {%- set breaking = "[**breaking**] " %} {%- else %} {%- set breaking = "" %} {%- endif %} {%- set short_sha = commit.id | truncate(length=10, end="") %} {%- set commit_url = "https://github.com/Devolutions/sspi-rs/commit/" ~ commit.id %} {%- set commit_link = "[" ~ short_sha ~ "](" ~ commit_url ~ ")" %} - {{ breaking }}{{ message }} ({{ commit_link }}) \ {% if commit.body %}\n\n {{ commit.body | replace(from="\n", to="\n ") }}{% endif %} {%- endfor %} {% endfor -%} """ footer = "" [git] conventional_commits = true filter_unconventional = false filter_commits = false date_order = false protect_breaking_commits = true sort_commits = "oldest" commit_preprocessors = [ # Replace issue number with the link { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/Devolutions/sspi-rs/issues/${2}))"}, # Replace commit sha1 with the link { pattern = '([a-f0-9]{10})([a-f0-9]{30})', replace = "[${0}](https://github.com/Devolutions/sspi-rs/commit/${1}${2})" } ] # regex for parsing and grouping commits # is a trick to control the section order: https://github.com/orhun/git-cliff/issues/9#issuecomment-914521594 commit_parsers = [ { message = "^chore", skip = true }, { message = "^style", skip = true }, { message = "^refactor", skip = true }, { message = "^test", skip = true }, { message = "^ci", skip = true }, { message = "^chore\\(release\\): prepare for", skip = true }, { footer = "^[Cc]hangelog: ?ignore", skip = true }, { message = "(?i)security", group = "Security" }, { body = "(?i)security", group = "Security" }, { footer = "^[Ss]ecurity: ?yes", group = "Security" }, { message = "^feat", group = "Features" }, { message = "^revert", group = "Revert" }, { message = "^fix", group = "Bug Fixes" }, { message = "^perf", group = "Performance" }, { message = "^doc", group = "Documentation" }, { message = "^build", group = "Build" }, { message = "(?i)improve", group = "Improvements" }, { message = "(?i)adjust", group = "Improvements" }, { message = "(?i)change", group = "Improvements" }, { message = ".*", group = "Please Sort" }, ]