diff --git a/.gitea/workflows/pr-check.yaml b/.gitea/workflows/pr-check.yaml index 0e66a5c..53262aa 100644 --- a/.gitea/workflows/pr-check.yaml +++ b/.gitea/workflows/pr-check.yaml @@ -42,7 +42,21 @@ jobs: git fetch --depth=1 origin "$COMMIT_SHA" git checkout -f "$COMMIT_SHA" - - name: 1. OpenAPI Contract Level Check + - name: 1. Commit Message Check + shell: sh + run: | + echo "Checking commit messages for [AC-...] or [TASK-...] (range: refs/remotes/origin/main..HEAD)" + # refs/remotes/origin/main is fetched in the checkout step + git log --no-merges --format=%B refs/remotes/origin/main..HEAD | cat + + if git log --no-merges --format=%B refs/remotes/origin/main..HEAD | grep -Eq '\[(AC|TASK)-'; then + echo "OK: Found [AC-...] or [TASK-...] in PR commits" + else + echo "ERROR: At least one commit message in the PR must contain [AC-...] or [TASK-...]" + exit 1 + fi + + - name: 2. OpenAPI Contract Level Check env: REQUIRE_PROVIDER_L2: "1" shell: sh @@ -50,15 +64,15 @@ jobs: chmod +x scripts/*.sh ./scripts/check-openapi-level.sh - - name: 2. AC Traceability Check + - name: 3. AC Traceability Check shell: sh run: ./scripts/check-traceability.sh - - name: 3. OpenAPI Breaking Change Check + - name: 4. OpenAPI Breaking Change Check shell: sh run: ./scripts/check-openapi-diff.sh - - name: 4. Minimum Self-Test (mvn test) + - name: 5. Minimum Self-Test (mvn test) shell: sh run: | # 针对 Java Spring 项目运行最小单测 (方案 B: 不存在则提示跳过)