1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # git-cliff ~ 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]
- # template for the changelog body
- # https://keats.github.io/tera/docs/#introduction
- body = """
- {%- macro remote_url() -%}
- https://github.com/magicblock-labs/bolt
- {%- endmacro -%}
- {% macro print_commit(commit) -%}
- {% if commit.message is matching("#") %} \
- - {{ commit.message | upper_first }} \
- {% endif %} \
- {% endmacro -%}
- {% 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 | striptags | trim | upper_first }}
- {% for commit in commits
- | filter(attribute="scope")
- | unique(attribute="message")
- | sort(attribute="scope") %}
- {{ self::print_commit(commit=commit) }}
- {%- endfor -%}
- {% raw %}\n{% endraw %}\
- {%- for commit in commits %}
- {%- if not commit.scope -%}
- {{ self::print_commit(commit=commit) }}
- {% endif -%}
- {% endfor -%}
- {% endfor %}\n
- """
- # remove the leading and trailing whitespace from the templates
- trim = true
- # postprocessors
- postprocessors = [
- { pattern = '<REPO>', replace = "https://github.com/magicblock-labs/bolt" },
- { pattern = '\* :.*', replace = "" },
- { pattern = '\s*\n', replace = "\n" },
- { pattern = '\n.*(R|r)elease.*\n', replace = "" },
- { pattern = '### 🐛 Bug Fixes', replace = "\n### 🐛 Bug Fixes" },
- { pattern = '##', replace = "\n##" },
- { pattern = '- *(:\w+:|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?:\u{FE0F})?\u{200D}?) *', replace = "- " },
- ]
- [git]
- # parse the commits based on https://www.conventionalcommits.org
- conventional_commits = false
- # 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 preprocessing the commit messages
- #commit_preprocessors = [
- # # Check spelling of the commit with https://github.com/crate-ci/typos
- # # If the spelling is incorrect, it will be automatically fixed.
- # { pattern = '.*', replace_command = 'typos --write-changes -' },
- #]
- # regex for parsing and grouping commits
- commit_parsers = [
- { message = "^Feat", group = "<!-- 0 -->✨️ Features" },
- { message = "^:sparkles:", group = "<!-- 0 -->✨️ Features" },
- { message = "^Feature", group = "<!-- 0 -->✨️ Features" },
- { message = "^:bug:", group = "<!-- 1 -->🐛 Bug Fixes" },
- { message = ":memo:", group = "<!-- 3 -->📚 Documentation" },
- { message = "^:zap:", group = "<!-- 4 -->⚡️ Performance" },
- { message = "^:art:", group = "<!-- 5 -->🎨 Styling" },
- { message = "^:construction_worker:", group = "<!-- 6 -->👷 CI/CD" },
- { message = "^:recycle:", group = "<!-- 7 -->♻️ Refactor" },
- ]
- # 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 = true
- # regex for matching git tags
- tag_pattern = "v[0-9].*"
- # regex for skipping tags
- skip_tags = "beta|alpha"
- # regex for ignoring tags
- ignore_tags = "rc"
- # sort the tags topologically
- topo_order = false
- # sort the commits inside sections by oldest/newest order
- sort_commits = "newest"
|