diff --git a/.github/workflows/pr-title-check.yaml b/.github/workflows/pr-title-check.yaml new file mode 100644 index 000000000..f0311634f --- /dev/null +++ b/.github/workflows/pr-title-check.yaml @@ -0,0 +1,35 @@ +name: PR Title Check + +on: + pull_request: + types: [opened, edited, reopened, synchronize] + +jobs: + title-check: + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Check if PR is internal + id: check_internal + run: | + if [[ "${{ github.event.pull_request.head.repo.full_name }}" == "${{ github.repository }}" ]]; then + echo "internal=true" >> $GITHUB_ENV + else + echo "internal=false" >> $GITHUB_ENV + fi + + - name: Run title check script + if: env.internal == 'true' + run: | + pr_title="${{ github.event.pull_request.title }}" + pattern="^(Feature|Fix|Bug|Bugfix|Docs|Refactor|Chore|Github)\/SK-[0-9]+ \| .+" + if [[ ! "$pr_title" =~ $pattern ]]; then + echo "Error: PR title does not follow the required pattern." + echo "Please ensure the title follows the pattern: 'Feature|Fix|Bug|Bugfix|Docs|Refactor|Chore|Github/SK- | '" + exit 1 + else + echo "PR title is valid." + fi \ No newline at end of file