# configuration file for git-cliff (0.1.0) [changelog] # changelog header header = """ # What's Changed """ # template for the changelog body # https://tera.netlify.app/docs/#introduction body = """ {% for group, commits in commits | group_by(attribute="group") %}\ ### {{ group | striptags | trim | upper_first }} {% for commit in commits | filter(attribute="scope") | sort(attribute="scope") %} - **{{commit.scope}}**: {{ commit.message | upper_first | trim }} | [{{ commit.id | truncate(length=7, end="") }}](/commit/{{ commit.id }})\ {%- if commit.breaking %} {% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}} {%- endif -%} {%- endfor -%} {%- for commit in commits %} {%- if commit.scope -%} {% else -%} {% raw %}\n{% endraw %}\ - {{ commit.message | upper_first | trim }} | [{{ commit.id | truncate(length=7, end="") }}](/commit/{{ commit.id }})\ {%- if commit.breaking %} {% raw %} {% endraw %}- **BREAKING**: {{commit.breaking_description}} {%- endif -%} {% endif -%} {% endfor -%} {% raw %}\n{% endraw %} {% endfor %}\n\ """ # remove the leading and trailing whitespaces from the template trim = true # changelog footer footer = """ """ # postprocessors postprocessors = [ { pattern = '(\(/pull/[0-9]+\)\)) \| .+', replace = "${1}" }, { pattern = '', replace = "https://github.com/mainsail-crew/crowsnest" }, # replace repository URL ] [git] # allow only conventional commits # https://www.conventionalcommits.org conventional_commits = true filter_unconventional = true # regex for parsing and grouping commits commit_parsers = [ # Commits to skip { message = "^docs\\(changelog\\):", group = "Changelog", skip = true}, # Old redundant commits { message = "^chore: push version number to", group = "9$Other", skip = true}, # Old redundant commits { message = "^chore\\(changelog\\): update changelog", group = "Changelog", skip = true}, # Old redundant commits # Commits to parse { message = "^feat(\\(.*\\))?:", group = "Features"}, { message = "^feature(\\(.*\\))?:", group = "Features"}, { message = "^fix(\\(.*\\))?:", group = "Bug Fixes and Improvements"}, { message = "^perf(\\(.*\\))?:", group = "Performance"}, { message = "^refactor(\\(.*\\))?:", group = "Refactor"}, { message = "^style(\\(.*\\))?:", group = "Styling"}, { message = "^locale(\\(.*\\))?:", group = "Localization"}, { message = "^docs(\\(.*\\))?:", group = "Documentation"}, { message = "^test(\\(.*\\))?:", group = "Other"}, { message = "^chore(\\(.*\\))?:", group = "Other"}, { body = ".*security", group = "Security"}, ] commit_preprocessors = [ { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/pull/${2}))" }, ] # filter out the commits that are not matched by commit parsers filter_commits = true ignore_tags="v*-(beta|rc)*" # glob pattern for matching git tags tag_pattern = "v[0-9]*"