[changelog]
header = """
# Changelog

All notable changes to this project will be documented in this file.\n
"""
body = """
{%- macro remote_url() -%}
  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
{%- endmacro -%}
{% if version %}\
	# [{{ version | trim_start_matches(pat="v") }}]\
	{% if previous %}\
		{% if previous.version %}\
			({{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }})\
		{% else %}\
			({{ self::remote_url() }}/tree/{{ version }})\
		{% endif %}\
	{% endif %} \
	- ({{ 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.scope %}\
			**{{commit.scope}}:** \
		  {% endif %}\
			{{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))\
			{% if commit.github.username %} by @{{ commit.github.username }}{%- endif %}\
		{% if commit.breaking %}\
			{% for footer in commit.footers %}\
				{% if footer.breaking %}\
					\n{% raw %}  {% endraw %}- **{{ footer.token }}{{ footer.separator }}** {{ footer.value }}\
				{% endif %}\
			{% endfor %}\
		{% endif %}\
	{% endfor %}
{% endfor %}\
{% if github.contributors | filter(attribute="is_first_time", value=true) | length %}\
	\n### New Contributors\n
	{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}\
		* @{{ contributor.username }} made their first contribution in #{{ contributor.pr_number }}
	{% endfor %}\
{% endif %}\n
"""
trim = true
footer = ""

[git]
conventional_commits = true
filter_unconventional = true
commit_parsers = [
	{ message = "^feat", group = "Features"},
	{ message = "^fix", group = "Bug Fixes"},
	{ message = "^docs", group = "Documentation"},
	{ message = "^perf", group = "Performance"},
	{ message = "^refactor", group = "Refactor"},
	{ message = "^typings", group = "Typings"},
	{ message = "^types", group = "Typings"},
	{ message = ".*deprecated", body = ".*deprecated", group = "Deprecation"},
	{ message = "^revert", skip = true},
	{ message = "^style", group = "Styling"},
	{ message = "^test", group = "Testing"},
	{ message = "^chore", skip = true},
	{ message = "^ci", skip = true},
	{ message = "^build", skip = true},
	{ body = ".*security", group = "Security"},
]
filter_commits = true
tag_pattern = "^[0-9]+"
ignore_tags = ""
topo_order = false
sort_commits = "newest"

[remote.github]
owner = "discordjs"
repo = "discord.js"
