ci: add PR size and title checks, configure commitizen

Add two new GitHub Actions workflows:
- pr-size.yml: auto-labels PRs by size and fails CI on PRs over 500 lines
- pr-title.yml: enforces conventional commit format on PR titles

Configure commitizen in pyproject.toml with strict schema pattern matching
for conventional commits.
This commit is contained in:
Greyson LaLonde
2026-02-27 12:43:55 -05:00
parent 757a435ee3
commit 156b9d3285
3 changed files with 91 additions and 0 deletions

38
.github/workflows/pr-title.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: PR Title Check
on:
pull_request:
types: [opened, edited, synchronize, reopened]
jobs:
pr-title:
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
feat
fix
refactor
perf
test
docs
chore
ci
style
revert
requireScope: false
subjectPattern: ^[a-z].+[^.]$
subjectPatternError: >
The PR title "{title}" does not follow conventional commit format.
Expected: <type>(<scope>): <lowercase description without trailing period>
Examples:
feat(memory): add lancedb storage backend
fix(agents): resolve deadlock in concurrent execution
chore(deps): bump pydantic to 2.11.9
See RELEASE_PROCESS.md for the full commit message convention.