diff --git a/.github/workflows/commit_message.yml b/.github/workflows/commit_message.yml index 978b961..c28c888 100644 --- a/.github/workflows/commit_message.yml +++ b/.github/workflows/commit_message.yml @@ -1,44 +1,23 @@ -name: 'Commit Message Check' +name: Check Commit Message + on: - pull_request: - types: - - opened - - edited - - reopened - - synchronize - pull_request_target: - types: - - opened - - edited - - reopened - - synchronize push: branches: - main - - 'releases/*' jobs: - check-commit-message: - name: Check Commit Message + check_commit_message: runs-on: ubuntu-latest + steps: - - name: Check Commit Type - uses: gsactions/commit-message-checker@v1 - with: - pattern: '\[[^]]+\] .+$' - flags: 'gm' - error: 'Your first line has to contain a commit type like "[BUGFIX]".' - - name: Check Line Length - uses: gsactions/commit-message-checker@v1 - with: - pattern: '^[^#].{74}' - error: 'The maximum line length of 74 characters is exceeded.' - excludeDescription: 'true' # optional: this excludes the description body of a pull request - excludeTitle: 'true' # optional: this excludes the title of a pull request - checkAllCommitMessages: 'true' # optional: this checks all commits associated with a pull request - accessToken: ${{ secrets.GITHUB_TOKEN }} # github access token is only required if checkAllCommitMessages is true - - name: Check for Resolves / Fixes - uses: gsactions/commit-message-checker@v1 - with: - pattern: '^.+(Resolves|Fixes): \#[0-9]+$' - error: 'You need at least one "Resolves|Fixes: #" line.' \ No newline at end of file + - name: Checkout code + uses: actions/checkout@v2 + + - name: Check commit message + run: | + COMMIT_MSG=$(git log --format=%B -n 1 ${{ github.sha }}) + PATTERN='^(feat|fix|docs|style|refactor|perf|test|chore)(\(.+\))?: .{1,100}$' + if [[ ! $COMMIT_MSG =~ $PATTERN ]]; then + echo "Invalid commit message format. Must match pattern: /^(feat|fix|docs|style|refactor|perf|test|chore)(\(.+\))?: .{1,100}$/" + exit 1 + fi