Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Update package.json #8412

Update package.json

Update package.json #8412

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."