Configuration Reference¶
Complete reference for all releasio configuration options.
Quick Reference¶
| Section | Option | Default | Description |
|---|---|---|---|
| General | default_branch |
"main" |
Default branch for releases |
allow_dirty |
false |
Allow dirty working directory | |
[version] |
tag_prefix |
"v" |
Git tag prefix |
initial_version |
"0.1.0" |
First release version | |
version_files |
[] |
Additional version files | |
auto_detect_version_files |
false |
Auto-detect version files | |
update_lock_file |
true |
Update lock file after bump | |
[changelog] |
enabled |
true |
Enable changelog generation |
path |
"CHANGELOG.md" |
Changelog file path | |
use_github_prs |
false |
Use PR-based changelog | |
show_authors |
false |
Show commit authors | |
native_fallback |
true |
Use native if git-cliff missing | |
[commits] |
types_minor |
["feat"] |
Types triggering minor bump |
types_patch |
["fix", "perf"] |
Types triggering patch bump | |
breaking_pattern |
"BREAKING[ -]CHANGE:" |
Breaking change pattern | |
[github] |
release_pr_branch |
"releasio/release" |
Release PR branch name |
release_pr_labels |
["release"] |
PR labels | |
draft_releases |
false |
Create draft releases | |
release_name_format |
"{project} {tag}" |
Release title format | |
[publish] |
enabled |
true |
Enable PyPI publishing |
registry |
PyPI URL | Package registry | |
tool |
"uv" |
Build/publish tool | |
trusted_publishing |
true |
Use OIDC publishing | |
[hooks] |
pre_bump |
[] |
Commands before bump |
post_bump |
[] |
Commands after bump | |
pre_release |
[] |
Commands before release | |
post_release |
[] |
Commands after release |
General Settings¶
Top-level settings that apply to the entire release process.
default_branch¶
Type: string · Default: "main"
The default branch for releases.
allow_dirty¶
Type: boolean · Default: false
Allow releases from a dirty working directory.
Warning
Not recommended for production releases.
[version]¶
Version management settings.
tag_prefix¶
Type: string · Default: "v"
Prefix for git tags.
initial_version¶
Type: string · Default: "0.1.0"
Version to use for the first release (when no tags exist).
pre_release¶
Type: string | null · Default: null
Global pre-release identifier. Use for always creating pre-releases.
version_files¶
Type: list[path] · Default: []
Additional files to update with the version.
auto_detect_version_files¶
Type: boolean · Default: false
Automatically detect and update version files.
Searches for:
__init__.pywith__version____version__.py_version.py
update_lock_file¶
Type: boolean · Default: true
Update lock file after version bump.
Supports: uv.lock, poetry.lock, pdm.lock
[changelog]¶
Changelog generation settings.
enabled¶
Type: boolean · Default: true
Enable changelog generation.
path¶
Type: path · Default: "CHANGELOG.md"
Path to the changelog file.
template¶
Type: string | null · Default: null
Custom git-cliff template (path or inline).
header¶
Type: string | null · Default: null
Custom header for the changelog.
use_github_prs¶
Type: boolean · Default: false
Use GitHub PR-based changelog (recommended for squash merge).
ignore_authors¶
Type: list[string] · Default: [list of bots]
Authors to exclude from changelog.
section_headers¶
Type: dict[string, string] · Default: {...}
Custom section headers for each commit type.
[changelog.section_headers]
feat = "✨ New Features"
fix = "🐛 Bug Fixes"
perf = "⚡ Performance"
docs = "📚 Documentation"
breaking = "⚠️ Breaking Changes"
show_authors¶
Type: boolean · Default: false
Include author names in changelog entries.
show_commit_hash¶
Type: boolean · Default: false
Include short commit hash in changelog entries.
commit_template¶
Type: string | null · Default: null
Custom template for each commit entry.
Available variables: {scope}, {description}, {author}, {hash}, {body}, {type}
show_first_time_contributors¶
Type: boolean · Default: false
Highlight first-time contributors.
include_dependency_updates¶
Type: boolean · Default: false
Include dependency updates section.
native_fallback¶
Type: boolean · Default: true
Generate changelog natively if git-cliff unavailable.
[commits]¶
Commit parsing and version bump rules.
types_minor¶
Type: list[string] · Default: ["feat"]
Commit types that trigger a minor version bump.
types_patch¶
Type: list[string] · Default: ["fix", "perf"]
Commit types that trigger a patch version bump.
types_major¶
Type: list[string] · Default: []
Commit types that trigger a major version bump.
breaking_pattern¶
Type: string · Default: "BREAKING[ -]CHANGE:"
Regex pattern to detect breaking changes in commit body.
scope_regex¶
Type: string | null · Default: null
Only process commits matching this scope (for monorepos).
skip_release_patterns¶
Type: list[string] · Default: ["[skip release]", ...]
Patterns in commit messages that skip release.
commit_parsers¶
Type: list[CommitParser] · Default: []
Custom commit parsers for non-conventional formats.
[[commits.commit_parsers]]
pattern = "^:sparkles:\\s*(?P<description>.+)$"
type = "feat"
group = "Features"
[[commits.commit_parsers]]
pattern = "^:bug:\\s*(?P<description>.+)$"
type = "fix"
group = "Bug Fixes"
use_conventional_fallback¶
Type: boolean · Default: true
Fall back to conventional commit parsing if no custom parser matches.
[github]¶
GitHub integration settings.
owner / repo¶
Type: string | null · Default: null (auto-detected)
Repository owner and name.
api_url¶
Type: string · Default: "https://api.github.com"
GitHub API URL (for GitHub Enterprise).
release_pr_branch¶
Type: string · Default: "releasio/release"
Branch name for release PRs.
release_pr_labels¶
Type: list[string] · Default: ["release"]
Labels to apply to release PRs.
draft_releases¶
Type: boolean · Default: false
Create releases as drafts.
release_name_format¶
Type: string · Default: "{project} {tag}"
Format for GitHub release title. Customize how the release name appears on the GitHub releases page.
Available variables:
{project}- Project name from pyproject.toml (e.g.,myapp){version}- Version number without prefix (e.g.,1.0.0){tag}- Full git tag including prefix (e.g.,v1.0.0)
Examples:
[github]
# Just version number
release_name_format = "{version}" # → "1.0.0"
# Version with prefix only
release_name_format = "{tag}" # → "v1.0.0"
# Project and version (no prefix)
release_name_format = "{project} {version}" # → "myapp 1.0.0"
# Custom format
release_name_format = "Release {version}" # → "Release 1.0.0"
# With emoji
release_name_format = "🚀 {project} {tag}" # → "🚀 myapp v1.0.0"
release_assets¶
Type: list[string] · Default: []
Files to upload as release assets (supports glob).
[publish]¶
PyPI publishing settings.
enabled¶
Type: boolean · Default: true
Enable PyPI publishing.
registry¶
Type: string · Default: "https://upload.pypi.org/legacy/"
PyPI registry URL.
tool¶
Type: "uv" | "poetry" | "pdm" | "twine" · Default: "uv"
Tool to use for building and publishing.
trusted_publishing¶
Type: boolean · Default: true
Use OIDC trusted publishing when available.
validate_before_publish¶
Type: boolean · Default: true
Run validation (twine check) before publishing.
check_existing_version¶
Type: boolean · Default: true
Check if version already exists on PyPI.
[hooks]¶
Release lifecycle hooks.
pre_bump¶
Type: list[string] · Default: []
Commands to run before version bump.
post_bump¶
Type: list[string] · Default: []
Commands to run after version bump.
pre_release¶
Type: list[string] · Default: []
Commands to run before release.
post_release¶
Type: list[string] · Default: []
Commands to run after release.
build¶
Type: string | null · Default: null
Custom build command.
Available variables: {version}, {project_path}
[security]¶
Security advisory settings.
enabled¶
Type: boolean · Default: false
Enable security advisory integration.
auto_create_advisory¶
Type: boolean · Default: true
Automatically create GitHub Security Advisories.
security_patterns¶
Type: list[string] · Default: [...]
Regex patterns to detect security commits.
[branches]¶
Multi-channel release configuration.
[branches.main]
match = "main"
prerelease = false
[branches.beta]
match = "beta"
prerelease = true
prerelease_token = "beta"
[branches.alpha]
match = "alpha/*"
prerelease = true
prerelease_token = "alpha"
match¶
Branch name or glob pattern.
prerelease¶
Whether releases are pre-releases.
prerelease_token¶
Pre-release identifier (e.g., "alpha", "beta", "rc").