content: [changelog]
  # changelog header
  header = """
  # Changelog
  
  All notable changes to this project will be documented in this file.
  
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
  
  """
  # template for the changelog body
  # https://tera.netlify.app/docs/#introduction
  body = """
  {% if version %}\
      ## [{{ version }}](https://github.com/trustyou/kured-alert-silencer/tree/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
  {% else %}\
      ## [unreleased]
  {% endif %}\
  {% for group, commits in commits | group_by(attribute="group") %}
      ### {{ group | striptags | trim | upper_first }}
      {% for commit in commits
      | filter(attribute="scope")
      | sort(attribute="scope") %}
          - {{commit.scope}}: {{ commit.message | upper_first }}
          {%- if commit.breaking %}
          {% raw %}  {% endraw %}- **BREAKING**: {{commit.breaking_description}}
          {%- endif -%}
      {%- endfor -%}
      {% for commit in commits %}
          {%- if commit.scope %}
          {%- else %}
              - {{ commit.message | upper_first }}
              {%- if commit.breaking %}
              {% raw %}  {% endraw %}- **BREAKING**: {{commit.breaking_description}}
              {%- endif -%}
          {%- endif -%}
      {%- endfor -%}
      {% raw %}\n{% endraw %}\
  {% endfor %}\n
  """
  # remove the leading and trailing whitespace from the template
  trim = true
  # changelog footer
  footer = """
  """
  
  [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 parsing and grouping commits
  commit_parsers = [
      { message = "^feat", group = "<!-- 0 -->Added"},
      { message = "^fix", group = "<!-- 1 -->Fixed"},
      { message = "^docs", group = "<!-- 2 -->Documentation"},
      { message = "^build", group = "Build"},
      { message = "^refactor", group = "Refactor"},
      { message = "^release", skip = true},
      { message = "^style", group = "Styling"},
      { message = "^test", group = "Testing"},
  ]
  # 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]*"
  # sort the commits inside sections by oldest/newest order
  sort_commits = "oldest"
  