Skip to content
Snippets Groups Projects
Select Git revision
  • 19cd5100f80d1ce64baeafe593c430f58aa7ef23
  • master default protected
  • feature/PRXS-3383-CollectionsRankSort
  • feature/3149-LocaleCodeAsID
  • refactor/PRXS-3053-RefactorFiles
  • feature/3146-UpdateItemStorageInterface
  • feature/3180-RemoveOldHugo
  • feature/3264-FixExtracTranslationsArrays
  • feature/3274-ObjectIndexesFixes
  • feature/2931-AllowPartialDecode
  • feature/3055-ItemsRestAPI
  • feature/3082-gitlab-triage
  • feature/3055-LogsRestAPI
  • feature/2985-add-preset-settings
  • feature/2929-MultiInvitationFix
  • feature/2929-MultiInvitation
  • docs/2889-HugoModules
  • docs/2954-CheckResource
  • docs/3012-SplitBuild
  • docs/3024-PerxisWebStatic
  • feature/2911-GetArchive
  • v0.27.0
  • v0.21.0
  • v0.19.0
  • v0.20.0
25 results

cliff.toml

Blame
  • Semyon Krestyaninov's avatar
    Semyon Krestyaninov authored
    19cd5100
    History
    cliff.toml 4.03 KiB
    # git-cliff ~ default 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.
    [bump]
    features_always_bump_minor = true
    breaking_always_bump_major = true
    
    [changelog]
    # changelog header
    header = """
    # Changelog\n
    All notable changes to this project will be documented in this file.\n
    """
    # template for the changelog body
    # https://keats.github.io/tera/docs/#introduction
    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 | striptags | trim | upper_first }}
        {% for commit in commits %}
            - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
                {% if commit.breaking %}[**breaking**] {% endif %}\
                {{ commit.message | upper_first }} \
            {% if commit.links %}\
           ({% for link in commit.links %}\
              [{{ link.text }}]({{ link.href }})\
              {% if not loop.last %}, {% endif %}\
            {% endfor %})\
            {% endif %}\
            -([{{ commit.id | truncate(length=7, end="") }}]($REPO/-/commit/{{ commit.id }}))\
        {% endfor %}
    {% endfor %}\n
    """
    # template for the changelog footer
    footer = """
    <!-- generated by git-cliff -->
    """
    # remove the leading and trailings
    trim = true
    # postprocessors
    postprocessors = [
      { pattern = '\$REPO', replace = "https://git.perx.ru/perxis/perxis-proto" },
    ]
    
    [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 preprocessing the commit messages
    commit_preprocessors = [
      { pattern = 'Feat:', replace = "feat:"},
      { pattern = 'WIP:', replace = ""},
      { pattern = 'wip:', replace = ""}
      # Replace issue numbers
      #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
      # 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 = "^fix", group = "<!-- 1 -->🐛 Bug Fixes" },
      { message = "^doc", group = "<!-- 3 -->📚 Documentation" },
      { message = "^perf", group = "<!-- 4 -->⚡ Performance" },
      { message = "^refactor", group = "<!-- 2 -->🚜 Refactor", skip = true },
      { message = "^style", group = "<!-- 5 -->🎨 Styling" },
      { message = "^test", group = "<!-- 6 -->🧪 Testing" },
      { message = "^chore\\(release\\): prepare for", skip = true },
      { message = "^chore\\(deps.*\\)", skip = true },
      { message = "^chore\\(pr\\)", skip = true },
      { message = "^chore\\(pull\\)", skip = true },
      { message = "^chore|^ci", group = "<!-- 7 -->⚙️ Miscellaneous Tasks" },
      { body = ".*security", group = "<!-- 8 -->🛡️ Security" },
      { message = "^revert", group = "<!-- 9 -->◀️ Revert" },
      { message = "^irefac", skip = true },
    ]
    # 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
    # regex for matching git tags
    # tag_pattern = "v[0-9].*"
    # regex for skipping tags
    skip_tags = "v0.([0-9]\\.|1[0-8]).*"
    # regex for ignoring tags
    # ignore_tags = ""
    # sort the tags topologically
    topo_order = false
    # sort the commits inside sections by oldest/newest order
    sort_commits = "oldest"
    # limit the number of commits included in the changelog.
    # limit_commits = 42
    link_parsers = [
      { pattern = "#(PRXS-(\\d+))", href = "https://tracker.yandex.ru/$1"},
      { pattern = "RFC(\\d+)", text = "ietf-rfc$1", href = "https://datatracker.ietf.org/doc/html/rfc$1"},
    ]