-
Notifications
You must be signed in to change notification settings - Fork 39
Expand file tree
/
Copy pathcliff.toml
More file actions
72 lines (70 loc) · 2.79 KB
/
Copy pathcliff.toml
File metadata and controls
72 lines (70 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# git-cliff 配置(基于官方默认配置)
# https://git-cliff.org/docs/configuration
#
# commit 规范见全局 commit skill:Conventional Commits,
# 不符合规范的 commit 会被 filter_unconventional 直接过滤丢弃。
[changelog]
# changelog 文件头模板
header = """
# Changelog\n
All notable changes to this project will be documented in this file.\n
"""
# changelog 版本区块模板(Tera 语法)
body = """
{% if 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 | upper_first }}
{% for commit in commits %}
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
{% if commit.breaking %}[**breaking**] {% endif %}\
{{ commit.message | upper_first }}\
{% endfor %}
{% endfor %}\n
"""
# changelog 文件尾模板
footer = """
<!-- generated by git-cliff -->
"""
# 去除模板渲染结果的首尾空白
trim = true
[git]
# 按 Conventional Commits 规范解析 commit
conventional_commits = true
# 过滤不符合规范的 commit(不会出现在 changelog 中)
filter_unconventional = true
# 不将 commit message 的每一行拆分为独立 commit
split_commits = false
# commit 解析与分组规则(<!-- N --> 注释用于控制分组排序,渲染时会被 striptags 去除)
commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->🚀 Features" },
{ message = "^fix", group = "<!-- 1 -->🐛 Bug Fixes" },
{ message = "^doc", group = "<!-- 3 -->📚 Documentation" },
{ message = "^perf", group = "<!-- 4 -->⚡ Performance" },
{ message = "^refactor", group = "<!-- 2 -->🚜 Refactor" },
{ message = "^style", group = "<!-- 5 -->🎨 Styling" },
{ message = "^test", group = "<!-- 6 -->🧪 Testing" },
{ 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 = "<!-- 7 -->⚙️ Miscellaneous Tasks" },
{ body = ".*security", group = "<!-- 8 -->🛡️ Security" },
{ message = "^revert", group = "<!-- 9 -->◀️ Revert" },
{ message = ".*", group = "<!-- 10 -->💼 Other" },
]
# 不过滤未被 commit_parsers 匹配的 commit
filter_commits = false
# 匹配版本 tag 的正则(^ 锚定:排除 release 流程创建的 extension-v* / website-v* 组件 tag)
tag_pattern = "^v[0-9].*"
# 跳过的 tag 正则(空 = 不跳过)
skip_tags = ""
# 忽略的 tag 正则(空 = 不忽略)
ignore_tags = ""
# 按时间序而非拓扑序排序 tag
topo_order = false
# 版本区块内 commit 按从旧到新排序
sort_commits = "oldest"