overtrue/Conventional Pull Request Title
Automatically suggests or updates PR titles to follow Conventional Commits standard using AI
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit May 7, 2026
- License
- MIT
Pinned Snippet
uses: overtrue/conventional-pr-title@1680d43dcea81e9a69258402126ee2d26adb9c2c # v1.0.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| github-token | GitHub token for API access | yes | ${{ github.token }} |
| model | AI model to use (e.g., openai/gpt-4o-mini, anthropic/claude-3-5-sonnet-20241022, google/gemini-1.5-flash) or just provider name (e.g., openai, anthropic) | yes | openai |
| mode | Operation mode: 'auto' to automatically update title, 'suggest' to add comment with suggestions | no | suggest |
| allowed-types | Comma-separated list of allowed conventional commit types | no | feat,fix,docs,style,refactor,test,chore,perf,ci,build,revert |
| require-scope | Whether to require a scope in the commit message | no | false |
| max-length | Maximum allowed length for PR title | no | 72 |
| min-description-length | Minimum length for the description part | no | 3 |
| custom-prompt | Custom prompt template for AI title generation | no | "" |
| include-scope | Whether to prefer including scope in generated titles | no | true |
| skip-if-conventional | Skip processing if title already follows conventional commits | no | true |
| comment-template | Custom template for suggestion comments | no | "" |
| debug | Enable debug logging for troubleshooting | no | false |
| match-language | Respond in the same language as the original PR title | no | true |
| auto-comment | Add a comment when auto-updating PR title to notify the change | no | true |
Outputs
| name | description |
|---|---|
| is-conventional | Whether the PR title follows conventional commits format |
| suggested-titles | JSON array of AI-suggested conventional commits titles |
| original-title | Original PR title before processing |
| action-taken | Action taken: 'updated', 'commented', 'skipped', or 'error' |
| error-message | Error message if action failed |