rtk-ai/rtk
在 GitHub 查看ci: enforce conventional commit format on PR titles to prevent release-please failures
Open
#805 创建于 2026年3月25日
area:cieffort-smallenhancementgood first issuehelp wantedpriority:medium
仓库指标
- Star
- (48,085 star)
- PR 合并指标
- (平均合并 11天 1小时) (30 天内合并 45 个 PR)
描述
Problem
Release-please stopped creating releases after v0.31.0 because merge commits on master had non-conventional titles like Next Release or Release v0.31.0 — develop → master (#666). Release-please logs: commit could not be parsed: unexpected token.
This caused:
- No stable release for weeks (stuck at 0.31.0)
- Manual release needed for 0.33.0
- Homebrew-core stuck at old version
- User confusion about versions
Solution
Add a CI check that blocks merge if the PR title doesn't match conventional commit format:
^(feat|fix|chore|docs|ci|refactor|perf|test|build|style)(\(.+\))?!?: .+
Where to enforce
- All PRs targeting master — must be
feat:,fix:,chore:, etc. - All PRs targeting develop — same rule (so develop → master squash merges are already compliant)
Implementation
GitHub Action using amannn/action-semantic-pull-request or similar:
name: PR Title Check
on:
pull_request:
types: [opened, edited, synchronize]
branches: [master, develop]
jobs:
check-title:
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Also document
- develop → master must be squash merged (not merge commit)
- The squash title becomes the commit message on master
- Release-please parses this commit message to determine version bump
Context
- v0.31.0 worked because PR #704 was squash merged with
feat: 9-tool AI agent support - v0.33.0 had to be released manually because PR #780 was merge committed with
Next Release