mirror of
https://github.com/better-auth/better-auth.git
synced 2026-05-23 15:42:09 -05:00
81 lines
3.0 KiB
YAML
81 lines
3.0 KiB
YAML
# cSpell:words amannn marocchino
|
|
name: Semantic Pull Request
|
|
|
|
on:
|
|
pull_request_target:
|
|
types:
|
|
- opened
|
|
- reopened
|
|
- edited
|
|
- synchronize
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
validate:
|
|
name: Validate PR title
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pull-requests: write
|
|
steps:
|
|
- name: Generate App Token
|
|
id: app-token
|
|
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
|
|
if: vars.RELEASE_APP_ID != ''
|
|
with:
|
|
app-id: ${{ vars.RELEASE_APP_ID }}
|
|
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
|
|
|
|
- name: Check PR title
|
|
uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6
|
|
id: lint_pr_title
|
|
with:
|
|
subjectPattern: ^(?![A-Z]).+$ # Ensure the subject doesn't start with an uppercase character
|
|
subjectPatternError: |
|
|
The subject "{subject}" found in the pull request title "{title}"
|
|
didn't match the configured pattern. Please ensure that the subject
|
|
doesn't start with an uppercase character.
|
|
env:
|
|
GITHUB_TOKEN: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
|
|
|
|
# Block breaking changes (feat!, fix!, etc.) on PRs targeting main
|
|
- name: Block breaking changes on main
|
|
if: >
|
|
github.event.pull_request.base.ref == 'main' &&
|
|
steps.lint_pr_title.outputs.error_message == null
|
|
env:
|
|
PR_TITLE: ${{ github.event.pull_request.title }}
|
|
run: |
|
|
if echo "$PR_TITLE" | grep -qE '^[a-z]+(\(.+\))?!:'; then
|
|
echo "::error::Breaking changes (indicated by '!' in the PR title) are not allowed on main."
|
|
echo "::error::Please target the 'next' branch for breaking changes."
|
|
exit 1
|
|
fi
|
|
|
|
- name: Comment on invalid PR title
|
|
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3
|
|
# NOTE: null comparison is intentional per official README
|
|
if: always() && (steps.lint_pr_title.outputs.error_message != null)
|
|
with:
|
|
header: pr-title-lint-error
|
|
GITHUB_TOKEN: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
|
|
message: |
|
|
Thanks for your contribution!
|
|
|
|
PR titles need to follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format. It looks like your title needs a small adjustment.
|
|
|
|
*Hint:*
|
|
|
|
```
|
|
${{ steps.lint_pr_title.outputs.error_message }}
|
|
```
|
|
|
|
- name: Remove comment on valid PR title
|
|
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3
|
|
# NOTE: null comparison is intentional per official README
|
|
if: ${{ steps.lint_pr_title.outputs.error_message == null }}
|
|
with:
|
|
header: pr-title-lint-error
|
|
GITHUB_TOKEN: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
|
|
delete: true
|