Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8d24dfb
chore: scaffold schemas directory for cz config JSON schema (#1565)
FreakyAdy Aug 12, 2026
8ed853d
feat: implement JSON Schema for commitizen config (issue #1565)
FreakyAdy Aug 15, 2026
2b0b64b
fix: add types-jsonschema stub for mypy (CI fix)
FreakyAdy Aug 15, 2026
ad75f5a
fix(schema): support runtime questionary prompts and wrapped configs
FreakyAdy Oct 17, 2026
4a21717
test(schema): cover wrapped configs and questionary compatibility
FreakyAdy Oct 17, 2026
f5feea8
fix(deps): avoid unlocked jsonschema type stubs
FreakyAdy Oct 17, 2026
3e3b0c1
build(schema): align settings schema with supported prompt options
FreakyAdy Oct 17, 2026
d9f93a7
feat(schema): add wrapper schema for JSON and YAML configs
FreakyAdy Oct 17, 2026
f3af19d
docs(schema): distinguish settings and wrapped config schemas
FreakyAdy Oct 17, 2026
a664dbd
docs(schema): clarify generated settings and wrapper schemas
FreakyAdy Oct 17, 2026
d084568
fix(deps): restore jsonschema typing stubs
FreakyAdy Oct 17, 2026
62dad1a
fix(lockfile): resolve jsonschema type stubs
FreakyAdy Oct 17, 2026
95351a1
ci: test schema and generator changes
FreakyAdy Oct 17, 2026
17686b7
test(schema): cover supported questionary prompt types
FreakyAdy Oct 17, 2026
55b52dc
style(schema): format schema generator
FreakyAdy Oct 17, 2026
473d6da
style(schema): format schema tests
FreakyAdy Oct 17, 2026
30f7b46
fix(schema): allow nullable bump map values
FreakyAdy Oct 17, 2026
abdd54f
fix(schema): allow nullable bump map values in wrapper
FreakyAdy Oct 17, 2026
c4f8c61
test(schema): cover nullable bump map values
FreakyAdy Oct 17, 2026
f363693
fix(schema): include upstream body length limit
FreakyAdy Oct 17, 2026
1cc0e0a
fix(schema): include upstream body length limit in wrapper
FreakyAdy Oct 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/pythonpackage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
relevant:
- "commitizen/**"
- "tests/**"
- "schemas/**"
- "scripts/**"
- ".github/workflows/**"
python-check:
needs: detect_changes
Expand Down
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -108,12 +108,14 @@ test = [
"pytest-xdist>=3.1.0",
"pytest-gitconfig>=0.9.0",
"pre-commit>=4.5.1",
"jsonschema>=4.26.0",
]

linters = [
"ruff>=0.11.5",
"mypy>=1.16.0",
"types-deprecated>=1.2.9.2",
"types-jsonschema>=4.26.0.20261006",
"types-python-dateutil>=2.8.19.13",
"types-PyYAML>=5.4.3",
"types-termcolor>=0.1.1",
Expand Down
10 changes: 10 additions & 0 deletions schemas/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# JSON Schemas for Commitizen configuration

This directory contains two related schemas because the configuration shapes differ:

- `commitizen-config.schema.json` describes the settings object itself. Use it for the `[tool.commitizen]` table in `pyproject.toml` with a `#:schema` comment.
- `commitizen-wrapper.schema.json` describes a complete `.cz.json` or `.cz.yaml` file, where the settings are nested under the top-level `commitizen` key. The wrapper schema uses the SchemaStore identifier `https://json.schemastore.org/commitizen.json`.

The generator derives settings properties and defaults from Commitizen's configuration types, while its question schema follows the prompt options accepted by the runtime. Run `python scripts/gen_json_schema.py` to regenerate both files, or `python scripts/gen_json_schema.py --check` to verify that both committed schemas are current.

See issue #1565 for the original design discussion.
Loading
Loading