platform/cliff.toml
Andrey Sobolev 4ec4609364
Fix changelog
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-04-11 21:14:59 +07:00

92 lines
2.7 KiB
TOML

# git-cliff configuration file
# https://git-cliff.org/docs/configuration
#---------------------------------#
# Changelog Configuration #
#---------------------------------#
[changelog]
# Header template
header = """
# Changelog
All notable changes to this project will be documented in this file.
"""
# Body template - updated with GitHub profile links
body = """
{% if version %}
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}
## [unreleased]
{% endif %}
{% for author, commits in commits | group_by(attribute="author.name") %}
### {{ author }}
{% for commit in commits %}
- {% if commit.scope %}**{{ commit.scope }}:** {% endif %}{% if commit.breaking %}[**BREAKING**] {% endif %}{{ commit.message | trim | upper_first }}{% if commit.group %} ({{ commit.group | striptags | trim }}){% endif %}
{% endfor %}
{% endfor %}
"""
# Footer template
footer = """
<!-- generated by git-cliff -->
"""
trim = true
postprocessors = [
# { pattern = '<PATTERN>', replace = "replacement" },
]
#---------------------------------#
# Git Configuration #
#---------------------------------#
[git]
# Parse commits based on Conventional Commits spec
conventional_commits = true
filter_unconventional = false
split_commits = false
# Commit message preprocessing
commit_preprocessors = [
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/hcengineering/platform/issues/${2}))"},
{ pattern = "Merge pull request #([0-9]+) from [^ ]+", replace = "PR [#${1}](https://github.com/hcengineering/platform/pull/${1}):"},
{ pattern = "Signed-off-by:.*", replace = "" },
]
# Commit parsing and grouping
commit_parsers = [
# Features and Improvements
{ message = "^feat", group = "🚀 Features" },
{ message = "^Merge pull request.*", group = "🔀 Merged Changes" },
# Fixes
{ message = "^fix", group = "🐛 Bug Fixes" },
# Code Changes
{ message = "^refactor", group = "🚜 Refactor" },
{ message = "^perf", group = "⚡ Performance" },
{ message = "^style", group = "🎨 Styling" },
# Documentation and Testing
{ message = "^doc", group = "📚 Documentation" },
{ message = "^test", group = "🧪 Testing" },
# Maintenance
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore\\(deps.*\\)", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
{ message = "^chore|^ci", group = "⚙️ Miscellaneous Tasks" },
# Special Categories
{ body = ".*security", group = "🛡️ Security" },
{ message = "^revert", group = "◀️ Revert" },
]
protect_breaking_commits = false
filter_commits = false
topo_order = false
sort_commits = "oldest"