diff --git a/.github/workflows/pr-message-reminder.yml b/.github/workflows/pr-message-reminder.yml new file mode 100644 index 0000000000..6afa6700cb --- /dev/null +++ b/.github/workflows/pr-message-reminder.yml @@ -0,0 +1,39 @@ +name: PR Message Reminder +on: + push: + branches: + - master + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + pull_request: + types: + - opened + - synchronize + - reopened + - edited + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + remind-pr-author: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Extract Proposed Commit Message + run: | + python scripts/process_message.py "${TEXT_BODY}" > processed_body.txt + processed_body=$(cat processed_body.txt) + proposed_commit_message=$(echo "$processed_body" | awk '/\\*\\*Proposed commit message: \\\(wrap lines at 72 characters\\\)\\*\\*/,/\\*\\*Checklist:\\*\\*/' | tail -n +2 | head -n -3) + echo "Proposed commit message:" + echo "$proposed_commit_message" + if ! grep -q '[^[:space:]]' <<< "$proposed_commit_message"; then + echo "Please fill in the proposed commit message section in the pull request description." + exit 1 + fi + env: + TEXT_BODY: ${{ github.event.pull_request.body }} + \ No newline at end of file diff --git a/scripts/process_message.py b/scripts/process_message.py new file mode 100644 index 0000000000..6bd5470e1f --- /dev/null +++ b/scripts/process_message.py @@ -0,0 +1,15 @@ +import json +import re +import sys + +markdown_content = sys.argv[1] + +# Preprocessing the markdown content +markdown_content = markdown_content.replace('`', '\\`') +markdown_content = markdown_content.replace('(', '\\(').replace(')', '\\)') +markdown_content = re.sub(r'', '', markdown_content, flags=re.DOTALL) # Remove HTML comments + +print(markdown_content) + + +