Skip to content

Commit ac7b9f7

Browse files
feat(release): add configurable categorization system
- Define regex patterns for commit categorization (feat, fix, docs, chore, etc.) - Configure section titles, descriptions, and priorities - Add template and contributor configuration options - Include validation rules and message replacement patterns - Support for customizing GitHub integration and npm package settings
1 parent f394aef commit ac7b9f7

File tree

1 file changed

+161
-0
lines changed

1 file changed

+161
-0
lines changed

.github/release-notes-config.yml

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
# Release Notes Configuration
2+
3+
# This file contains configuration for the automated release notes generation system.
4+
# It defines how commits are categorized and what patterns to look for.
5+
6+
# Commit categorization patterns (regex patterns, case-insensitive)
7+
categorization:
8+
features:
9+
patterns:
10+
- "^feat(\\(.*\\))?:"
11+
- "^add "
12+
- "^implement "
13+
- "new feature"
14+
- "added support"
15+
16+
bugfixes:
17+
patterns:
18+
- "^fix(\\(.*\\))?:"
19+
- "^bug "
20+
- "^patch "
21+
- "resolve.*issue"
22+
- "fixed.*problem"
23+
24+
breaking_changes:
25+
patterns:
26+
- "^feat(\\(.*\\))?!:"
27+
- "^fix(\\(.*\\))?!:"
28+
- "breaking"
29+
- "^BREAKING CHANGE"
30+
- "backwards incompatible"
31+
32+
documentation:
33+
patterns:
34+
- "^docs(\\(.*\\))?:"
35+
- "documentation"
36+
- "readme"
37+
- "update.*docs"
38+
- "add.*docs"
39+
40+
internal:
41+
patterns:
42+
- "^chore(\\(.*\\))?:"
43+
- "^ci(\\(.*\\))?:"
44+
- "^test(\\(.*\\))?:"
45+
- "^refactor(\\(.*\\))?:"
46+
- "^build(\\(.*\\))?:"
47+
- "^perf(\\(.*\\))?:"
48+
- "internal changes"
49+
- "code cleanup"
50+
51+
dependencies:
52+
patterns:
53+
- "^deps(\\(.*\\))?:"
54+
- "dependencies"
55+
- "package.*update"
56+
- "bump.*version"
57+
- "upgrade.*to"
58+
- "update.*dependency"
59+
60+
# Section configuration
61+
sections:
62+
features:
63+
title: "🚀 Features Added"
64+
description: "New functionality and capabilities added in this release"
65+
66+
bugfixes:
67+
title: "🐛 Bug Fixes"
68+
description: "Issues and problems resolved in this release"
69+
70+
breaking_changes:
71+
title: "⚠️ Breaking Changes"
72+
description: "Changes that may break backward compatibility"
73+
priority: 1 # Show first after main description
74+
75+
documentation:
76+
title: "📚 Documentation"
77+
description: "Documentation updates and improvements"
78+
79+
internal:
80+
title: "🔧 Internal/DevOps"
81+
description: "Internal improvements, build system, and development tooling changes"
82+
83+
dependencies:
84+
title: "📦 Dependencies"
85+
description: "Dependency updates and package management changes"
86+
87+
other:
88+
title: "🎉 Other Changes"
89+
description: "Other notable changes that don't fit the above categories"
90+
91+
# Template configuration
92+
template:
93+
# Whether to include sections that have no items
94+
include_empty_sections: false
95+
96+
# Maximum number of commits to show per section (0 = unlimited)
97+
max_commits_per_section: 0
98+
99+
# Whether to include commit hashes in the output
100+
include_commit_hashes: true
101+
102+
# Whether to include author information
103+
include_authors: true
104+
105+
# Date format for the release
106+
date_format: "YYYY-MM-DD"
107+
108+
# Contributors configuration
109+
contributors:
110+
# Whether to include a contributors section
111+
include_contributors: true
112+
113+
# How to format contributor names
114+
format: "@{username}"
115+
116+
# Whether to exclude bot accounts
117+
exclude_bots: true
118+
119+
# List of usernames to exclude from contributors list
120+
exclude_users:
121+
- "dependabot[bot]"
122+
- "github-actions[bot]"
123+
124+
# Validation rules
125+
validation:
126+
# Minimum number of commits required for a release
127+
min_commits: 1
128+
129+
# Whether to fail if no categorized changes are found
130+
require_categorized_changes: false
131+
132+
# Whether to validate that breaking changes have migration notes
133+
require_breaking_change_notes: true
134+
135+
# Custom replacements for commit messages (useful for cleaning up automated commits)
136+
message_replacements:
137+
- pattern: "^Merge pull request #\\d+ from .*"
138+
replacement: "" # Remove merge commit messages
139+
- pattern: "^Merge branch '.*' into .*"
140+
replacement: "" # Remove branch merge messages
141+
- pattern: "\\(#(\\d+)\\)"
142+
replacement: "(#$1)" # Normalize PR references
143+
144+
# Integration settings
145+
integrations:
146+
github:
147+
# Whether to link to GitHub commits
148+
link_commits: true
149+
150+
# Whether to link to GitHub issues/PRs
151+
link_issues: true
152+
153+
# Base URL for the repository
154+
base_url: "https://github.com/{owner}/{repo}"
155+
156+
npm:
157+
# Whether to include npm installation instructions
158+
include_install_instructions: true
159+
160+
# Package name for installation instructions
161+
package_name: "create-polyglot"

0 commit comments

Comments
 (0)