72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
# configuration file for git-cliff
 | 
						|
# see https://github.com/orhun/git-cliff#configuration-file
 | 
						|
 | 
						|
[changelog]
 | 
						|
# changelog header
 | 
						|
header = """
 | 
						|
# Changelog\n
 | 
						|
All notable changes to this project will be documented in this file.\n
 | 
						|
"""
 | 
						|
# template for the changelog body
 | 
						|
# https://tera.netlify.app/docs/#introduction
 | 
						|
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 %}
 | 
						|
        - {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }}\
 | 
						|
    {% endfor %}
 | 
						|
{% endfor %}\n
 | 
						|
"""
 | 
						|
# remove the leading and trailing whitespace from the template
 | 
						|
trim = true
 | 
						|
# changelog footer
 | 
						|
footer = """
 | 
						|
<!-- generated by git-cliff -->
 | 
						|
"""
 | 
						|
 | 
						|
[git]
 | 
						|
# parse the commits based on https://www.conventionalcommits.org
 | 
						|
conventional_commits = true
 | 
						|
# filter out the commits that are not conventional
 | 
						|
filter_unconventional = true
 | 
						|
# process each line of a commit as an individual commit
 | 
						|
split_commits = false
 | 
						|
# regex for preprocessing the commit messages
 | 
						|
commit_preprocessors = [
 | 
						|
    # { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/orhun/git-cliff/issues/${2}))"}, # replace issue numbers
 | 
						|
]
 | 
						|
# regex for parsing and grouping commits
 | 
						|
commit_parsers = [
 | 
						|
    { message = "^feat", group = "Features"},
 | 
						|
    { message = "^fix", group = "Bug Fixes"},
 | 
						|
    { message = "^doc", group = "Documentation"},
 | 
						|
    { message = "^perf", group = "Performance"},
 | 
						|
    { message = "^refactor", group = "Refactor"},
 | 
						|
    { message = "^style", group = "Styling"},
 | 
						|
    { message = "^test", group = "Testing"},
 | 
						|
    { message = "^chore\\(release\\): prepare for", skip = true},
 | 
						|
    { message = "^chore", group = "Miscellaneous Tasks"},
 | 
						|
    { body = ".*security", group = "Security"},
 | 
						|
]
 | 
						|
# protect breaking changes from being skipped due to matching a skipping commit_parser
 | 
						|
protect_breaking_commits = false
 | 
						|
# filter out the commits that are not matched by commit parsers
 | 
						|
filter_commits = false
 | 
						|
# glob pattern for matching git tags
 | 
						|
tag_pattern = "v[0-9]*"
 | 
						|
# regex for skipping tags
 | 
						|
skip_tags = "v0.1.0-beta.1"
 | 
						|
# regex for ignoring tags
 | 
						|
ignore_tags = ""
 | 
						|
# sort the tags topologically
 | 
						|
topo_order = false
 | 
						|
# sort the commits inside sections by oldest/newest order
 | 
						|
sort_commits = "oldest"
 | 
						|
# limit the number of commits included in the changelog.
 | 
						|
# limit_commits = 42
 |