[changelog]
header = """
# Changelog
All notable changes to vtcode will be documented in this file.
"""
body = """
{% if version %}\
## {{ version | trim_start_matches(pat="v") }} - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [unreleased]
{% endif %}\
### Highlights
{% for group, commits in commits | group_by(attribute="group") %}\
{% if group == "Features" or group == "Bug Fixes" or group == "Documentation" %}\
#### {{ group | upper_first }}
{% for commit in commits %}\
- {{ commit.message | split(pat="\n") | first | upper_first }} ({% if commit.id %}{{ commit.id | truncate(length=8, end="") }}{% else %}unknown{% endif %}) {% if commit.remote.username %}(@{{ commit.remote.username }}){% endif %}
{% endfor %}\
{% endif %}\
{% endfor %}\
### Other Changes
{% for group, commits in commits | group_by(attribute="group") %}\
{% if group != "Features" and group != "Bug Fixes" and group != "Documentation" %}\
#### {{ group | upper_first }}
{% for commit in commits %}\
- {{ commit.message | split(pat="\n") | first | upper_first }} ({% if commit.id %}{{ commit.id | truncate(length=8, end="") }}{% else %}unknown{% endif %}) {% if commit.remote.username %}(@{{ commit.remote.username }}){% endif %}
{% endfor %}\
{% endif %}\
{% endfor %}\
### Contributors
{% set contributors = commits | map(attribute="remote.username") | unique | filter(attribute="self") %}\
{% if contributors | length > 0 %}\
{% for contributor in contributors %}@{{ contributor }} {% endfor %}\
{% else %}\
@vinhnx
{% endif %}\
"""
footer = ""
trim = true
postprocessors = []
[git]
conventional_commits = true
filter_unconventional = false
split_commits = false
commit_preprocessors = [
{ pattern = '\((https://github.com/vinhnx/vtcode/pull/\d+)\)', replace = "" },
{ pattern = '\(#\d+\)', replace = "" },
{ pattern = '^[Dd]ocs:', replace = "docs:" },
{ pattern = '^[Ff]eat:', replace = "feat:" },
{ pattern = '^[Ff]ix:', replace = "fix:" },
{ pattern = '^[Rr]efactor:', replace = "refactor:" },
{ pattern = '^[Tt]est:', replace = "test:" },
{ pattern = '^[Bb]uild:', replace = "build:" },
{ pattern = '^[Cc]I:', replace = "ci:" },
{ pattern = '^[Pp]erf:', replace = "perf:" },
{ pattern = '^[Cc]hore:', replace = "chore:" },
{ pattern = '\s+(feat|fix|docs|refactor|test|build|ci|perf|chore|deps|security):.*$', replace = "" },
]
commit_parsers = [
{ message = "^[a-zA-Z]+: update changelog for", skip = true },
{ message = "update changelog for", skip = true },
{ message = "\\[skip ci\\]", skip = true },
{ message = "^chore\\(release\\):", skip = true },
{ message = "^chore: Release$", skip = true },
{ message = "^chore: update homebrew", skip = true },
{ message = "bump version.*to", skip = true },
{ message = "update version.*number", skip = true },
{ message = "version bump", skip = true },
{ message = "^Merge pull request", skip = true },
{ message = "^Merge branch", skip = true },
{ message = "^feat", group = "Features", skip = false },
{ message = "^feat\\(.*\\):", group = "Features", skip = false },
{ message = "^fix", group = "Bug Fixes", skip = false },
{ message = "^fix\\(.*\\):", group = "Bug Fixes", skip = false },
{ message = "^perf", group = "Performance", skip = false },
{ message = "^perf\\(.*\\):", group = "Performance", skip = false },
{ message = "^refactor", group = "Refactors", skip = false },
{ message = "^refactor\\(.*\\):", group = "Refactors", skip = false },
{ message = "^security", group = "Security", skip = false },
{ message = "^security\\(.*\\):", group = "Security", skip = false },
{ message = "^docs", group = "Documentation", skip = false },
{ message = "^docs\\(.*\\):", group = "Documentation", skip = false },
{ message = "^test", group = "Tests", skip = false },
{ message = "^test\\(.*\\):", group = "Tests", skip = false },
{ message = "^build", group = "Build", skip = false },
{ message = "^build\\(.*\\):", group = "Build", skip = false },
{ message = "^ci", group = "CI", skip = false },
{ message = "^ci\\(.*\\):", group = "CI", skip = false },
{ message = "^deps", group = "Dependencies", skip = false },
{ message = "^deps\\(.*\\):", group = "Dependencies", skip = false },
{ message = "^chore", group = "Chores", skip = true },
{ message = "^chore\\(.*\\):", group = "Chores", skip = true },
{ message = "^Update commit$", skip = true },
{ message = "^Remove codes$", skip = true },
{ message = "^Implement code changes", skip = true },
{ message = ".*", group = "Other", skip = false },
]
protect_breaking_commits = false
filter_commits = true
tag_pattern = "[vV]?[0-9]+\\.[0-9]+\\.[0-9]+"
tag_regex = "(?P<version>[vV]?[0-9]+\\.[0-9]+\\.[0-9]+)"
exclude_patterns = [
"chore\\(release\\):",
"bump version",
"update version",
"version bump",
"release v?\\d+\\.\\d+\\.\\d+",
"chore.*version",
"chore.*release",
"build.*version",
"update.*version.*number",
"bump.*version.*to",
"update homebrew",
"Update changelog for",
"update changelog for",
"\\[skip ci\\]",
"Merge branch",
"Merge pull request",
]
sort_commits = "oldest"
remote = "github"
[remote.github]
owner = "vinhnx"
repo = "vtcode"
[gitmoji]
enable = false