Skip to content

Commit

Permalink
feat(config): add a custom configuration file for the repository
Browse files Browse the repository at this point in the history
  • Loading branch information
orhun committed Apr 26, 2023
1 parent 7e3adb0 commit 0d4e689
Show file tree
Hide file tree
Showing 4 changed files with 179 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
uses: orhun/git-cliff-action@v2
id: git-cliff
with:
config: config/cliff.toml
config: cliff.toml
args: -vv --latest --strip header
env:
OUTPUT: CHANGES.md
Expand Down
86 changes: 86 additions & 0 deletions cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# 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]
# changelog header
header = """
# Changelog\n
All notable changes to this project will be documented in this file.\n
"""
# template for the changelog body
# https://tera.netlify.app/docs/
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
| filter(attribute="scope")
| sort(attribute="scope") %}
- *({{commit.scope}})*{% if commit.breaking %} [**breaking**]{% endif %} \
{{ commit.message | upper_first }}
{%- endfor -%}
{% raw %}\n{% endraw %}\
{%- for commit in commits %}
{%- if commit.scope -%}
{% else -%}
- *(uncategorized)*{% if commit.breaking %} [**breaking**]{% endif %} \
{{ commit.message | upper_first }}
{% endif -%}
{% endfor -%}
{% endfor %}\n
"""
# remove the leading and trailing whitespace from the template
trim = true
# changelog footer
footer = """
<!-- generated by git-cliff -->
"""

[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 = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/orhun/git-cliff/issues/${2}))" },
]
# 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" },
{ message = "^style", group = "<!-- 5 -->🎨 Styling" },
{ message = "^test", group = "<!-- 6 -->🧪 Testing" },
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
{ message = "^chore", group = "<!-- 7 -->⚙️ Miscellaneous Tasks" },
{ body = ".*security", group = "<!-- 8 -->🛡️ Security" },
]
# 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]*"
# regex for skipping tags
skip_tags = "v0.1.0-beta.1"
# regex for ignoring tags
ignore_tags = ""
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "newest"
4 changes: 1 addition & 3 deletions release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@ sed -E -i "s/^version = .* $msg$/version = \"${1#v}\" $msg/" git-cliff*/Cargo.to
sed -E -i "s/\"version\": \".+\"/\"version\": \"${1#v}\"/" npm/git-cliff/package.json
sed -E -i "s/\"(git-cliff-.+)\": \".+\"/\"\1\": \"${1#v}\"/g" npm/git-cliff/package.json
# update the changelog
sed -E -i "s/\s+\#\s(.*)\s\#\sreplace issue numbers/\\t\1/g" config/cliff.toml
cargo run -- --tag "$1" >CHANGELOG.md
git restore config/cliff.toml
cargo run -- --config cliff.toml -tag "$1" >CHANGELOG.md
git add -A && git commit -m "chore(release): prepare for $1"
git show
# generate a changelog for the tag message
Expand Down
92 changes: 91 additions & 1 deletion website/docs/templating/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ See [examples](https://github.com/orhun/git-cliff/tree/main/examples) directory

If you have a custom configuration file that you are using for your project(s), consider sharing it with us by [submitting a pull request](https://github.com/orhun/git-cliff/blob/main/CONTRIBUTING.md)!

#### [Basic](https://github.com/orhun/git-cliff/tree/main/config/cliff.toml)
#### [Basic (default)](https://github.com/orhun/git-cliff/tree/main/config/cliff.toml)

<details>
<summary>Raw Output</summary>
Expand Down Expand Up @@ -110,6 +110,96 @@ All notable changes to this project will be documented in this file.

</details>

#### [Styled and scoped](https://github.com/orhun/git-cliff/tree/main/cliff.toml)

<details>
<summary>Raw Output</summary>

```
# Changelog
All notable changes to this project will be documented in this file.
## [unreleased]
### ⛰️ Features
- *(cache)* Use cache while fetching pages
- *(config)* Support multiple file formats
## [1.0.1] - 2021-07-18
### 🚜 Refactor
- *(parser)* Expose string functions
### ⚙️ Miscellaneous Tasks
- *(release)* Add release script
## [1.0.0] - 2021-07-18
### ⛰️ Features
- *(parser)* Add ability to parse arrays
### 🐛 Bug Fixes
- *(args)* Rename help argument due to conflict
### 📚 Documentation
- *(example)* [**breaking**] Add tested usage example
- *(project)* Add README.md
<!-- generated by git-cliff -->
```

</details>

<details>
<summary>Rendered Output</summary>

# Changelog

All notable changes to this project will be documented in this file.

## [unreleased]

### ⛰️ Features

- _(cache)_ Use cache while fetching pages
- _(config)_ Support multiple file formats

## [1.0.1] - 2021-07-18

### 🚜 Refactor

- _(parser)_ Expose string functions

### ⚙️ Miscellaneous Tasks

- _(release)_ Add release script

## [1.0.0] - 2021-07-18

### ⛰️ Features

- _(parser)_ Add ability to parse arrays

### 🐛 Bug Fixes

- _(args)_ Rename help argument due to conflict

### 📚 Documentation

- _(example)_ [**breaking**] Add tested usage example
- _(project)_ Add README.md

<!-- generated by git-cliff -->

</details>

#### [Minimal](https://github.com/orhun/git-cliff/tree/main/examples/minimal.toml)

<details>
Expand Down

0 comments on commit 0d4e689

Please sign in to comment.