This commit is contained in:
73
.github/workflows/semantic-pr-title.yml
vendored
Normal file
73
.github/workflows/semantic-pr-title.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
name: "Semantic PR Title"
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types:
|
||||
- opened
|
||||
- edited
|
||||
- synchronize
|
||||
- reopened
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
main:
|
||||
name: check
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' }}
|
||||
steps:
|
||||
- name: Lint and verify PR title
|
||||
uses: amannn/action-semantic-pull-request@v5
|
||||
id: lint_pr_title
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
types: |
|
||||
build
|
||||
chore
|
||||
ci
|
||||
docs
|
||||
feat
|
||||
impr
|
||||
fix
|
||||
perf
|
||||
refactor
|
||||
revert
|
||||
style
|
||||
test
|
||||
requireScope: false
|
||||
subjectPattern: ^.+ \(@[^ ,]+(, @[^ ,]+)*\)$
|
||||
subjectPatternError: |
|
||||
Title "{title}"
|
||||
didn't match the configured pattern. Please ensure that the title
|
||||
contains your name so that you can be credited in our changelog.
|
||||
|
||||
- uses: marocchino/sticky-pull-request-comment@v2
|
||||
# When the previous steps fails, the workflow would stop. By adding this
|
||||
# condition you can continue the execution with the populated error message.
|
||||
if: always() && (steps.lint_pr_title.outputs.error_message != null)
|
||||
with:
|
||||
header: pr-title-lint-error
|
||||
message: |
|
||||
Hey there and thank you for opening this pull request! 👋🏼
|
||||
|
||||
We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and also include the author name at the end inside parenthesis. It looks like your proposed title needs to be adjusted.
|
||||
|
||||
Details:
|
||||
|
||||
```
|
||||
${{ steps.lint_pr_title.outputs.error_message }}
|
||||
```
|
||||
A correct version would look something like:
|
||||
|
||||
feat: add new feature (@github_username)
|
||||
impr(quotes): add english quotes (@username)
|
||||
fix(leaderboard): show user rank correctly (@user1, @user2, @user3)
|
||||
|
||||
# Delete a previous comment when the issue has been resolved
|
||||
- if: ${{ steps.lint_pr_title.outputs.error_message == null }}
|
||||
uses: marocchino/sticky-pull-request-comment@v2
|
||||
with:
|
||||
header: pr-title-lint-error
|
||||
delete: true
|
||||
Reference in New Issue
Block a user