content: # Configuration for git-cliff
  # https://git-cliff.org/docs/configuration
  
  [changelog]
  header = """
  # Changelog
  
  All notable changes to Trek 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).
  
  """
  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 %}{% if commit.scope %}**{{ commit.scope }}:** {% endif %}{{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/officialunofficial/trek/commit/{{ commit.id }}))
      {%- endfor %}
  {% endfor %}\n
  """
  trim = true
  footer = """
  <!-- generated by git-cliff -->
  """
  
  [git]
  conventional_commits = true
  filter_unconventional = false
  split_commits = false
  commit_preprocessors = [
      # Replace issue numbers with links
      { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/officialunofficial/trek/issues/${2}))" },
      # Remove scope from commit message after extracting it
      { pattern = '^(\w+)(?:\(([^\)]+)\))?: (.+)$', replace = "${1}: ${3}" },
  ]
  commit_parsers = [
      { message = "^feat", group = "Features" },
      { message = "^fix", group = "Bug Fixes" },
      { message = "^docs?", group = "Documentation" },
      { message = "^perf", group = "Performance" },
      { message = "^refactor", group = "Refactor" },
      { message = "^style", group = "Styling" },
      { message = "^test", group = "Testing" },
      { message = "^build", group = "Build System" },
      { message = "^ci", group = "Continuous Integration" },
      { message = "^chore\\(release\\): prepare for", skip = true },
      { message = "^chore\\(deps\\)", group = "Dependencies" },
      { message = "^chore", group = "Miscellaneous Tasks" },
      { message = "^revert", group = "Reverts" },
      { body = ".*security", group = "Security" },
  ]
  protect_breaking_commits = false
  filter_commits = false
  tag_pattern = "v[0-9]*"
  skip_tags = ""
  ignore_tags = ""
  topo_order = false
  sort_commits = "oldest"
  
  # Bump version based on commits
  [bump]
  features_always_bump_minor = true
  breaking_always_bump_major = true
  