Commit Validation
Commit Validation
Keep commit validation available in every project while enabling Commitizen only when the project intentionally adopts it.
[tool.custy.commit.validation]Category
Quick Command
provider = auto | custy | commitizen | gitRecommended Configuration
[tool.custy.commit.validation]
provider = "auto"
require_tool = falseThis default does not require Commitizen. Custy activates cz only when it
finds both recognized project configuration and an available executable.
Behavior Matrix
| Provider | Commitizen config | cz installed | Result |
|---|---|---|---|
auto | No | No | Use Custy validation. |
auto | No | Yes | Use Custy validation; installation alone does not activate Commitizen. |
auto | Yes | Yes | Run Custy validation, then Commitizen validation. |
auto | Yes | No | Warn and fall back to Custy. |
auto with require_tool = true | Yes | No | Stop before mutation with COMMITIZEN_NOT_AVAILABLE. |
custy | Any | Any | Use only Custy's built-in conventional-message rules. |
commitizen | Yes | Yes | Require both Custy and Commitizen validation. |
commitizen | No or invalid | Any | Stop before mutation with a focused configuration error. |
git | Any | Any | Require a readable, non-empty UTF-8 message file; allow project-specific message formats. |
Properties
Properties
| Property | Type | Description | Default | Required |
|---|---|---|---|---|
provider | auto | custy | commitizen | git | Select automatic discovery, Custy's internal rules, strict Commitizen integration, or basic Git message-file safety checks. | auto | No |
require_tool | Boolean | In auto mode, turn a detected invalid or unavailable Commitizen integration from a warning and fallback into an early error. | false | No |
What Auto Detects
Custy recognizes these project configuration sources:
.cz.toml.cz.yamlor.cz.yml.cz.json[tool.commitizen]inpyproject.toml
Custy separately checks whether the cz executable is available. It never
installs Commitizen during a command and never enables it only because the
executable happens to be installed globally.
CLI Override
--check-cz is the backward-compatible strict override. For that invocation,
it behaves like:provider = "commitizen"
require_tool = true
Use persistent TOML configuration for team policy. Use --check-cz for an
intentional one-time verification.
Install Optional Commitizen Support
pip install "custy[commitizen]"Custy's production Docker image includes this optional extra so supported
Commitizen workflows are available in the container. A project-specific
pre-commit installation remains separate.
Versioning and Message Validation Are Independent
[tool.custy.cli.versioning].strategy = "commitizen" asks Commitizen to help
resolve versions. [tool.custy.commit.validation].provider = "commitizen"
asks it to validate the final commit message. A project may enable either one,
both, or neither.