From 6643d4f0c5cc3e2658f1740547846c8cf69fb8f4 Mon Sep 17 00:00:00 2001 From: smog-root Date: Sun, 20 Oct 2024 18:54:02 +0530 Subject: [PATCH 1/2] Implement GitHub PR Issue Checker Workflow --- .github/workflows/pr-checker.yaml | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/pr-checker.yaml diff --git a/.github/workflows/pr-checker.yaml b/.github/workflows/pr-checker.yaml new file mode 100644 index 0000000..dbab3ef --- /dev/null +++ b/.github/workflows/pr-checker.yaml @@ -0,0 +1,57 @@ +name: PR Issue Checker +# Created by @smog-root. +on: + pull_request: + types: [opened, edited] + +jobs: + check_pr_details: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install dependencies (if needed) + run: pip install re # Install Python's regex library (not needed if using built-in) + + - name: Check PR Description and Title + id: check_pr_details + run: | + python -c " +import re +import sys +import os + +pr_description = os.getenv('GITHUB_EVENT_PULL_REQUEST_BODY', '') +pr_title = os.getenv('GITHUB_EVENT_PULL_REQUEST_TITLE', '') + +# Check if PR description is present +if not pr_description: + print('PR description is missing.') + sys.exit(1) + +# Check if the PR description contains 'Fixes #' +if not re.search(r'Fixes #[0-9]+', pr_description): + print('The PR description should include Fixes #.') + sys.exit(1) + +# Check if the PR title starts with FIX, FEAT, or DOC +if not re.match(r'^(FIX|FEAT|DOC)', pr_title): + print('The PR title should start with FIX, FEAT, or DOC.') + sys.exit(1) + +print('PR description and title are valid.') +" + env: + GITHUB_EVENT_PULL_REQUEST_BODY: ${{ github.event.pull_request.body }} + GITHUB_EVENT_PULL_REQUEST_TITLE: ${{ github.event.pull_request.title }} + + - name: Output result + run: echo "All checks passed." + From 281efa13dd70665459433f00692d8e3a762e49e2 Mon Sep 17 00:00:00 2001 From: smog-root Date: Sun, 20 Oct 2024 19:02:22 +0530 Subject: [PATCH 2/2] Update pr-checker.yaml --- .github/workflows/pr-checker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-checker.yaml b/.github/workflows/pr-checker.yaml index dbab3ef..2d3e74c 100644 --- a/.github/workflows/pr-checker.yaml +++ b/.github/workflows/pr-checker.yaml @@ -43,7 +43,7 @@ if not re.search(r'Fixes #[0-9]+', pr_description): # Check if the PR title starts with FIX, FEAT, or DOC if not re.match(r'^(FIX|FEAT|DOC)', pr_title): - print('The PR title should start with FIX, FEAT, or DOC.') + print('The PR title should start with Fixes, Closes, or FIX.') sys.exit(1) print('PR description and title are valid.')