# git-cliff ~ default configuration file
# https://git-cliff.org/docs/configuration
#
# Lines starting with "#" are comments.
# Configuration options are organized into tables and keys.
# See documentation for more information on available options.

[changelog]
trim = true

header = "## Changes"

body = """
{% for group, commits in commits | filter(attribute="merge_commit") | group_by(attribute="group") %}
  ### {{ group | striptags | trim | upper_first }}
  {% for commit in commits %}
    * [<tt>{{ commit.id | split(pat="") | slice(end=11) | join() }}</tt>]\
      (https://code.host.antville.org/antville/helma/commit/{{ commit.id }}) \
      {% if commit.breaking %}**Breaking:** {% endif %}\
      {{ commit.message | split(pat="\\n") | first | upper_first | escape }}\
  {% endfor %}
{% endfor %}

**Full Changelog:** [{{ previous.version }} → {{ version }}]\
(https://code.host.antville.org/antville/helma/compare/\
{{ previous.version | urlencode }}..{{ version | urlencode }})\n\n
"""

footer = """
Generated by [git-cliff](https://git-cliff.org/).
"""

[git]
conventional_commits = false
filter_commits = false
filter_unconventional = false
protect_breaking_commits = false
sort_commits = "newest"
split_commits = false
topo_order = false

commit_parsers = [
  { message = "^Apply \\d+ suggestion", skip = true },
  { message = "^Merge .*(branch|dependabot|dependency|renovate)", skip = true },
  { message = "^Lock file maintenance", skip = true },
  { message = "yarn\\.lock", skip = true },

  { message = "^[Ff]ix", group = "<!-- 0 --> 🐛 Bug Fixes" },
  { field = "author.name", pattern = "[Rr]enovate|[Dd]ependabot", group = "<!-- 3 --> 📦 Dependency Updates" },
  { message = "^Merge pull request", group = "<!-- 1 --> 🔀 Merges" },
  { message = ".*", group = "<!-- 2 --> Uncategorized" },
]