[changelog]
# The header of the changelog
header = """
# Changelog

All notable changes to wrkflw will be documented in this file.
"""

# Template for the changelog body
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 }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/bahdotsh/wrkflw/commit/{{ commit.id }})){% if commit.links %} ({% for link in commit.links %}[{{ link.text }}]({{ link.href }}){% if not loop.last %}, {% endif %}{% endfor %}){% endif %}
{% endfor %}
{% endfor %}
"""

# Remove the leading and trailing whitespace from the template
trim = true

# The footer of the changelog
footer = """
<!-- generated by git-cliff -->
"""

# This determines how the links to commits are formatted
[git]
conventional_commits = true
filter_unconventional = true
commit_parsers = [
  { message = "^feat", group = "Features" },
  { message = "^fix", group = "Bug Fixes" },
  { message = "^docs", group = "Documentation" },
  { message = "^style", group = "Styling" },
  { message = "^refactor", group = "Refactor" },
  { message = "^perf", group = "Performance" },
  { message = "^test", group = "Testing" },
  { message = "^chore\\(deps\\)", skip = true },
  { message = "^chore\\(release\\)", skip = true },
  { message = "^chore", group = "Miscellaneous Tasks" },
  { body = ".*security", group = "Security" },
]

# Define the GitHub repository URL for commit links
[git.link]
# Format: https://github.com/USER/REPO/commit/{}
commit_link = "https://github.com/bahdotsh/wrkflw/commit/{}"

# Format of the git commit link
link_parsers = [
  { pattern = "#(\\d+)", href = "https://github.com/bahdotsh/wrkflw/issues/$1" },
]

filter_commits = true
tag_pattern = "v[0-9]*"
ignore_tags = ""
date_format = "%Y-%m-%d"
sort_commits = "oldest" 