Skip to content

Commit c7dc18c

Browse files
committed
chore(ops): set up git-cliff to generate change logs (closed #82)
1 parent 2f9e486 commit c7dc18c

4 files changed

Lines changed: 138 additions & 0 deletions

File tree

cliff.toml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
[changelog]
2+
body = """
3+
{%- macro remote_url() -%}
4+
https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
5+
{%- endmacro -%}
6+
7+
{% macro group_section(label, commits) %}
8+
### {{ label }}
9+
{% for commit in commits %}
10+
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
11+
{% if commit.breaking %}[**breaking**] {% endif %}\
12+
{{ commit.message | upper_first }}
13+
([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))\
14+
{% endfor %}
15+
{% endmacro input %}
16+
17+
{% if version %}\
18+
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
19+
{% else %}\
20+
## [unreleased]
21+
{% endif %}\
22+
{% for group, commits in commits | group_by(attribute="group") %}
23+
{% set group_label = group | striptags | trim | upper_first %}\
24+
{% if group_label != "Chores" %}\
25+
{{ self::group_section(label=group_label, commits=commits) }}
26+
{% else %}\
27+
<details>
28+
29+
<summary>Show internal changes</summary>
30+
31+
{{ self::group_section(label=group_label, commits=commits) }}
32+
33+
</details>
34+
{% endif %}\
35+
{% endfor %}
36+
37+
"""
38+
trim = true
39+
render_always = true
40+
postprocessors = [
41+
{ pattern = '<REPO>', replace = "https://github.com/kossnocorp/genotype" },
42+
]
43+
44+
[git]
45+
conventional_commits = true
46+
filter_unconventional = true
47+
commit_preprocessors = [
48+
{ pattern = '#([0-9]+)', replace = "[#${1}](<REPO>/issues/${1})"},
49+
]
50+
commit_parsers = [
51+
{ message = "^feat\\(.+\\)?!?:", group = "<!-- 0 --> Features" },
52+
{ message = "^fix\\(.+\\)?!?:", group = "<!-- 1 --> Bug Fixes" },
53+
{ message = "^doc\\(.+\\)?!?:", group = "<!-- 3 --> Documentation" },
54+
{ message = "^perf\\(.+\\)?!?:", group = "<!-- 4 --> Performance" },
55+
{ message = "^chore:", group = "<!-- 5 --> Chores" },
56+
]
57+
topo_order_commits = true
58+
sort_commits = "oldest"
59+
60+
[remote.github]
61+
owner = "kossnocorp"
62+
repo = "genotype"

fnox.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
default_provider = "age"
2+
3+
[providers.age]
4+
type = "age"
5+
recipients = [
6+
"age1nlqfv0ptcfs7ssuuq8c06nprslcvwg9qpt6kf0ex20jhnknjmsqsrqf96k",
7+
]
8+
9+
[secrets]
10+
GITHUB_TOKEN= { provider = "age", value = "YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyeWw2b09zQjJobW1Bc0lodUJWWDU0OHh4R3hzb2tJM1ljNjVoaVlhSWcwCnY0Q2hWK1FSMUhlcXNFL2FrS1VjVmRKS1luc0xnYnd1UXdQYTBGcWF2UDQKLT4gX2Y9TjMtZ3JlYXNlIC81aQpXNklZeGFob054V3kzQ2d4UURpb0ZjMll6Z0tXK3NaU1FrT1FMWGJXZnc1RDJ2SFFTTktNQVVWVGhFN2N5K3JhCm9CK2QzNW5zR1g1TiszWXNtZUxSc2ZmVWRnNXgvbWpwUThoSHhRCi0tLSBXNHp4RWpxTHNDeU9NOXVWZFJPdnhVSDZWOFAvR0pWOEMzZ1l0K2dxY1NnCuPdsbe7QlAdYTJmcZAEKD+hwRxSIj0SnwbY2NKSygcAspmAHzcucfq8aRotCrqIHtxc5pAdqBSlwmmZVNiY4mXHh2lTMEOYDkvj6lRS5xHm0x/SiM6/g81MZC9y5bSsWgjOfV408Fi0Kw+DcuBRHQ4vaoMSvtxtr45RoUnk" }

mise.lock

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ backend = "cargo:just-lsp"
3232
version = "1.3.2"
3333
backend = "cargo:toml2json"
3434

35+
[[tools.fnox]]
36+
version = "1.17.0"
37+
backend = "github:jdx/fnox"
38+
3539
[[tools.gh]]
3640
version = "2.89.0"
3741
backend = "aqua:cli/cli"
@@ -71,6 +75,38 @@ checksum = "sha256:f3326f6406c98c99701b257d77e2b040eedf83d0176c2c2e9809aa339ceb4
7175
url = "https://github.com/cli/cli/releases/download/v2.89.0/gh_2.89.0_windows_amd64.zip"
7276
provenance = "github-attestations"
7377

78+
[[tools.git-cliff]]
79+
version = "2.12.0"
80+
backend = "aqua:orhun/git-cliff"
81+
82+
[tools.git-cliff."platforms.linux-arm64"]
83+
checksum = "sha256:a2d262b389aed349e0564aaaa38a44015c98a951048923b086d6cf732f6dbbaf"
84+
url = "https://github.com/orhun/git-cliff/releases/download/v2.12.0/git-cliff-2.12.0-aarch64-unknown-linux-musl.tar.gz"
85+
86+
[tools.git-cliff."platforms.linux-arm64-musl"]
87+
checksum = "sha256:a2d262b389aed349e0564aaaa38a44015c98a951048923b086d6cf732f6dbbaf"
88+
url = "https://github.com/orhun/git-cliff/releases/download/v2.12.0/git-cliff-2.12.0-aarch64-unknown-linux-musl.tar.gz"
89+
90+
[tools.git-cliff."platforms.linux-x64"]
91+
checksum = "sha256:c89a7bc55f3c51f391938aa3fa560125109695c1930d927879daea68dd786420"
92+
url = "https://github.com/orhun/git-cliff/releases/download/v2.12.0/git-cliff-2.12.0-x86_64-unknown-linux-musl.tar.gz"
93+
94+
[tools.git-cliff."platforms.linux-x64-musl"]
95+
checksum = "sha256:c89a7bc55f3c51f391938aa3fa560125109695c1930d927879daea68dd786420"
96+
url = "https://github.com/orhun/git-cliff/releases/download/v2.12.0/git-cliff-2.12.0-x86_64-unknown-linux-musl.tar.gz"
97+
98+
[tools.git-cliff."platforms.macos-arm64"]
99+
checksum = "sha256:2ae72a0061bee98d0e375f2ea8e0f4b23b4915ac2e37fa45a705066de49b43a0"
100+
url = "https://github.com/orhun/git-cliff/releases/download/v2.12.0/git-cliff-2.12.0-aarch64-apple-darwin.tar.gz"
101+
102+
[tools.git-cliff."platforms.macos-x64"]
103+
checksum = "sha256:fd4bce35ea8a6f3af6ac4891073781ca24c654c36c83c865bc30bab332c05a14"
104+
url = "https://github.com/orhun/git-cliff/releases/download/v2.12.0/git-cliff-2.12.0-x86_64-apple-darwin.tar.gz"
105+
106+
[tools.git-cliff."platforms.windows-x64"]
107+
checksum = "sha256:f2b8c692d9488c3313d7786e2099976151c10fd8f76580b12d045bb9683a8379"
108+
url = "https://github.com/orhun/git-cliff/releases/download/v2.12.0/git-cliff-2.12.0-x86_64-pc-windows-msvc.zip"
109+
74110
[[tools.node]]
75111
version = "24.14.1"
76112
backend = "core:node"
@@ -107,6 +143,34 @@ url = "https://nodejs.org/dist/v24.14.1/node-v24.14.1-win-x64.zip"
107143
version = "1.4.0"
108144
backend = "aqua:anomalyco/opencode"
109145

146+
[tools.opencode."platforms.linux-arm64"]
147+
checksum = "sha256:2f5728ed47d8147da9163e4c10a83914131bf849bfc0f17590ab6d58b7d03ba3"
148+
url = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-linux-arm64.tar.gz"
149+
150+
[tools.opencode."platforms.linux-arm64-musl"]
151+
checksum = "sha256:2f5728ed47d8147da9163e4c10a83914131bf849bfc0f17590ab6d58b7d03ba3"
152+
url = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-linux-arm64.tar.gz"
153+
154+
[tools.opencode."platforms.linux-x64"]
155+
checksum = "sha256:5117eb08aa542d49b0149ba837d01c7ebc1d79ba332e8518859edc33c4eff2cf"
156+
url = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-linux-x64.tar.gz"
157+
158+
[tools.opencode."platforms.linux-x64-musl"]
159+
checksum = "sha256:5117eb08aa542d49b0149ba837d01c7ebc1d79ba332e8518859edc33c4eff2cf"
160+
url = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-linux-x64.tar.gz"
161+
162+
[tools.opencode."platforms.macos-arm64"]
163+
checksum = "sha256:be968e559051bb622f0b9fc628216670240b7e7441a11b0eb11f79a6f03239a5"
164+
url = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-darwin-arm64.zip"
165+
166+
[tools.opencode."platforms.macos-x64"]
167+
checksum = "sha256:fb2ab4b4995bcced575f19f90bb08cb657accdb90ebeec9f0cd182f02e1e9e0c"
168+
url = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-darwin-x64.zip"
169+
170+
[tools.opencode."platforms.windows-x64"]
171+
checksum = "sha256:378cb5fd511c90f4bdbb5a69c79d65c241e17d0f825d49b78a2cf6457d3a8e90"
172+
url = "https://github.com/anomalyco/opencode/releases/download/v1.4.0/opencode-windows-x64.zip"
173+
110174
[[tools.oxfmt]]
111175
version = "0.40.0"
112176
backend = "npm:oxfmt"

mise.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ watchexec = "latest"
2929
opencode = "latest"
3030
shfmt = "latest"
3131
gh = "latest"
32+
git-cliff = "latest"
33+
fnox = "latest"
3234

3335
[settings]
3436
lockfile = true

0 commit comments

Comments
 (0)