feat: add git-cliff configuration

git-cliff is a tool which allows us to generate changelog
based off of conventional commits in the repository.

This commit provides an initial cliff.toml configuration
file which formats changelog output with tables and branch
state metadata.

Upstream: https://github.com/orhun/git-cliff

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-10-19 08:57:43 -07:00
parent d22580fa74
commit 37232f71ee
No known key found for this signature in database
GPG key ID: F7E46DED420788F3

75
cliff.toml Normal file
View file

@ -0,0 +1,75 @@
# configuration file for git-cliff (0.1.0)
[changelog]
# changelog header
header = """
# Changelog
All notable feature additions, bug fixes and 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 %}\
#### Release [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
{% set head = commits | last %}\
| Branch | HEAD | Status | Coverage |
|--------|------|--------|----------|
| [pu](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu) | [{{ head.id | truncate(length=8, end="") }}](https://gitlab.archlinux.org/archlinux/aurweb/-/commits/{{ head.id }}) | ![pipeline](https://gitlab.archlinux.org/archlinux/aurweb/badges/pu/pipeline.svg?key_text=build) | ![coverage](https://gitlab.archlinux.org/archlinux/aurweb/badges/pu/coverage.svg) |
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | lower }}
| Commit | Message |
|--------|---------| \
{% for commit in commits %}
| [{{ commit.id | truncate(length=8, end="") }}](https://gitlab.archlinux.org/archlinux/aurweb/-/commit/{{ commit.id }}) | {{ commit.message }} |\
{% endfor %}
{% endfor %}\n
"""
# remove the leading and trailing whitespaces from the template
trim = true
# changelog footer
footer = """
## Notes
See a general project status overview at \
https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Home.
To contribute with testing of the modern aurweb FastAPI port development, visit \
https://gitlab.archlinux.org/archlinux/aurweb/-/wikis/Testing-Guide.
To file a bug, create an issue using the Bug template by following the link: \
https://gitlab.archlinux.org/archlinux/aurweb/-/issues/new?issuable_template=Bug.
To provide feedback, create an issue using the Feedback template by following
the link: \
https://gitlab.archlinux.org/archlinux/aurweb/-/issues/new?issuable_template=Feedback.
<!-- generated by git-cliff -->
"""
[git]
# allow only conventional commits
# https://www.conventionalcommits.org
conventional_commits = true
# 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 = "^change", group = "Changes" },
{ 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"},
]
# 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"