Update package.json #8412
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Check commit prefix | |
| on: | |
| pull_request: | |
| types: [edited, opened, synchronize, reopened, ready_for_review] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| check-commit-prefix: | |
| # Only trigger on the main Django repository | |
| if: github.repository == 'django/django' && startsWith(github.event.pull_request.base.ref, 'stable/') | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Calculate commit prefix | |
| id: vars | |
| env: | |
| BASE: ${{ github.event.pull_request.base.ref }} | |
| run: | | |
| echo "BASE=$BASE" >> $GITHUB_ENV | |
| VERSION="${BASE#stable/}" | |
| echo "prefix=[$VERSION]" >> $GITHUB_OUTPUT | |
| - name: Check PR title prefix | |
| env: | |
| TITLE: ${{ github.event.pull_request.title }} | |
| PREFIX: ${{ steps.vars.outputs.prefix }} | |
| run: | | |
| if [[ "$TITLE" != "$PREFIX"* ]]; then | |
| echo "❌ PR title must start with the required prefix: $PREFIX" | |
| exit 1 | |
| fi | |
| echo "✅ PR title has the required prefix." | |
| - name: Fetch relevant branches | |
| run: | | |
| git fetch origin $BASE:base --depth=1 | |
| git fetch origin pull/${{ github.event.pull_request.number }}/head:pr --depth=1 | |
| - name: Check commit messages prefix | |
| env: | |
| PREFIX: ${{ steps.vars.outputs.prefix }} | |
| run: | | |
| COMMITS=$(git rev-list base..pr) | |
| echo "Checking commit messages for required prefix: $PREFIX" | |
| FAIL=0 | |
| for SHA in $COMMITS; do | |
| MSG=$(git log -1 --pretty=%s $SHA) | |
| echo "Checking commit $SHA: $MSG" | |
| if [[ "$MSG" != "$PREFIX"* ]]; then | |
| echo "❌ Commit $SHA must start with the required prefix: $PREFIX" | |
| FAIL=1 | |
| fi | |
| done | |
| if [[ $FAIL -eq 1 ]]; then | |
| echo "One or more commit messages are missing the required prefix." | |
| exit 1 | |
| fi | |
| echo "✅ All commits have the required prefix." | |
| check-commit-suffix: | |
| # Only trigger on the main Django repository | |
| if: github.repository == 'django/django' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - name: Fetch relevant branches | |
| run: | | |
| git fetch origin $BASE:base --depth=1 | |
| git fetch origin pull/${{ github.event.pull_request.number }}/head:pr --depth=1 | |
| - name: Check commit messages suffix | |
| run: | | |
| COMMITS=$(git rev-list base..pr) | |
| echo "Checking commit messages for trailing period" | |
| FAIL=0 | |
| for SHA in $COMMITS; do | |
| MSG=$(git log -1 --pretty=%s $SHA) | |
| echo "Checking commit $SHA: $MSG" | |
| if [[ "${MSG: -1}" != "." ]]; then | |
| echo "❌ Commit $SHA must end with a period." | |
| echo "Refer to the guidelines linked in the PR checklist for commit message format." | |
| echo "For how to rewrite commit messages, see https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/working-with-git/#editing-commit-messages" | |
| FAIL=1 | |
| fi | |
| done | |
| if [[ $FAIL -eq 1 ]]; then | |
| echo "One or more commit messages are missing a trailing period." | |
| exit 1 | |
| fi | |
| echo "✅ All commits have the required trailing period." |