Repository navigation
Expand file tree
/
Copy pathcliff.toml
More file actions
51 lines (47 loc) · 1.8 KB
/
Copy pathcliff.toml
File metadata and controls
51 lines (47 loc) · 1.8 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
[changelog]
header = ""
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 | upper_first }}
{% for commit in commits -%}
- {{ commit.message | upper_first }}{% if commit.breaking %} **[BREAKING]**{% endif %}
{% endfor %}
{% endfor %}\n
"""
trim = true
[git]
conventional_commits = true
filter_unconventional = true
split_commits = false
# Map commit types to changelog groups, and set which types
# count toward a "breaking"/major bump.
commit_parsers = [
# Excluded from the changelog entirely. `scope = "..."` in a commit_parsers
# entry does NOT filter by the commit's scope -- it *assigns* one, the same
# way `group = "..."` does. Scope-based exclusion has to match the
# "type(scope): ..." prefix in `message` instead. These rules run before the
# type rules below, so e.g. `fix(ci): ...` is skipped rather than landing in
# "Fixed" -- CI/release tooling is internal maintenance, not user-facing.
{ message = "^\\w+\\(ci\\)", skip = true },
{ message = "^\\w+\\(internal\\)", skip = true },
{ message = "^\\w+\\(dev\\)", skip = true },
{ message = "^\\w+\\(release\\)", skip = true },
{ message = "^chore", skip = true },
{ message = "^ci", skip = true },
{ message = "^test", skip = true },
{ message = "^style", skip = true },
{ message = "^build", skip = true },
{ message = "^feat", group = "Added" },
{ message = "^fix", group = "Fixed" },
{ message = "^perf", group = "Performance" },
{ message = "^refactor", group = "Changed" },
{ message = "^doc", group = "Documentation" },
]
# Exclude specific scopes regardless of type, e.g. internal tooling
# that isn't user-facing.
filter_commits = true