zendev-review
zendev-review owns reusable pull-request title and body validation. It
depends on zendev-commit so title checks reuse commit profiles instead of
copying commit semantics.
uv add --dev zendev-review
uvx --from zendev-review zendev-validate-title --help
uvx --from zendev-review zendev-validate-body --help
Python API
from zendev.body import BodySection, validate_body
valid, headings = validate_body(
"## Motivation\n\nWhy.\n\n## Solution\n\nHow.\n",
[BodySection("Motivation"), BodySection("Solution")],
)
assert valid
assert headings == ["Motivation", "Solution"]
Title validation
The title CLI uses the same profiles and repository configuration as the commit hook:
uvx --from zendev-review zendev-validate-title --profile gitmoji ":sparkles: Add export support"
See zendev-commit for profile semantics.
Body validation
The body CLI reads H2 sections from the configured PR template:
uvx --from zendev-review zendev-validate-body "$PR_BODY" \
--template .github/pull_request_template.md \
--require-checklist
The section contract is:
- every template H2 is required by default
<!-- pr-body:optional -->makes the following H2 optional<!-- pr-body:required -->explicitly marks the following H2 as required- present sections must retain template order
- undeclared, duplicate, ambiguous, and dangling sections or directives fail
- directives and headings inside fenced code blocks are ignored
When --require-checklist is present, every checked - [x] row under the
configured checklist H2 must occur in the PR body. --fail-on-empty-checklist
makes an empty template checklist fail instead of becoming a no-op.
The composite Actions expose the same behavior for GitHub workflows.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zendev_review-0.2.2-py3-none-any.whl.
File metadata
- Download URL: zendev_review-0.2.2-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
546b12c8ec8eca83a4995ac0c27895d3f43c1c2b9454562b9ad7d94232022740
|
|
| MD5 |
d162d4cbf21624b80e3871b5d28a592b
|
|
| BLAKE2b-256 |
6d5574d84e86502d022e8eca508f5ed78069e0150d5b4cf609b3a8ac0711ccc7
|
Provenance
The following attestation bundles were made for zendev_review-0.2.2-py3-none-any.whl:
Publisher:
cd-release.yml on zendev-lab/zendev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zendev_review-0.2.2-py3-none-any.whl -
Subject digest:
546b12c8ec8eca83a4995ac0c27895d3f43c1c2b9454562b9ad7d94232022740 - Sigstore transparency entry: 2685310442
- Sigstore integration time:
-
Permalink:
zendev-lab/zendev@ef6fcd52b3997cc6042a49439035829fe1360aa3 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/zendev-lab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd-release.yml@ef6fcd52b3997cc6042a49439035829fe1360aa3 -
Trigger Event:
push
-
Statement type: