Add <KEVMENEA> #472
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Pre-review | |
| on: | |
| pull_request_target: | |
| branches: [ master ] | |
| types: [opened, synchronize, reopened, closed] | |
| pull_request_review: | |
| types: [submitted] | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| issues: write | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| jobs: | |
| pre-review: | |
| if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| fetch-depth: 0 | |
| - name: Install Python 3 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: 3.9 | |
| - name: Fetch branch | |
| run: git fetch origin ${{ github.event.pull_request.base.ref }} | |
| - name: Collect information | |
| run: | | |
| setEnv() { echo "$1=${!1}" >> $GITHUB_ENV; } | |
| CONTRIBUTOR=${{ github.event.pull_request.user.login }} | |
| setEnv "CONTRIBUTOR" | |
| BASE_REPO=${{ github.event.pull_request.base.repo.full_name }} | |
| setEnv "BASE_REPO" | |
| HEAD_REF=${{ github.event.pull_request.head.ref }} | |
| setEnv "HEAD_REF" | |
| PR_NUMBER=${{ github.event.pull_request.number }} | |
| setEnv "PR_NUMBER" | |
| echo "PR_NUMBER: $PR_NUMBER" | |
| MERGE_BASE=$(git merge-base origin/${{ github.event.pull_request.base.ref }} HEAD) | |
| setEnv "MERGE_BASE" | |
| CHANGED_FILES=$(gh pr view $PR_NUMBER -R "$BASE_REPO" --json files -q '.files[].path' | paste -sd '\\n' -) | |
| echo "CHANGED_FILES<<EOF" >> $GITHUB_ENV | |
| printf '%s\n' "$CHANGED_FILES" >> $GITHUB_ENV | |
| echo "EOF" >> $GITHUB_ENV | |
| - name: Run "preReview" script | |
| run: | | |
| PR_NUMBER=${{ github.event.pull_request.number }} | |
| BASE_REPO=${{ github.event.pull_request.base.repo.full_name }} | |
| REVIEW_MESSAGE=$(python pre_review.py "$CHANGED_FILES" "$CONTRIBUTOR") | |
| echo "REVIEW_MESSAGE<<EOF" >> $GITHUB_ENV | |
| echo "$REVIEW_MESSAGE" >> $GITHUB_ENV | |
| echo "EOF" >> $GITHUB_ENV | |
| echo "===== REVIEW_MESSAGE =====" | |
| echo "$REVIEW_MESSAGE" | |
| echo "===========================" | |
| # Attempt to comment (will skip for forks) | |
| gh pr comment "$PR_NUMBER" --body "$REVIEW_MESSAGE" -R "$BASE_REPO" | |
| # -------------------------------------------------------------------------- | |
| # LABELS | |
| # -------------------------------------------------------------------------- | |
| # --- "Changes Requested" or "Awaiting Maintainer Validation" labels --- | |
| if echo "$REVIEW_MESSAGE" | grep -Eq '\- \[ \]'; then | |
| gh pr edit "$PR_NUMBER" --add-label "Changes Requested" -R "$BASE_REPO" | |
| gh pr edit "$PR_NUMBER" --remove-label "Awaiting Maintainer Validation" -R "$BASE_REPO" | |
| else | |
| gh pr edit "$PR_NUMBER" --add-label "Awaiting Maintainer Validation" -R "$BASE_REPO" | |
| gh pr edit "$PR_NUMBER" --remove-label "Changes Requested" -R "$BASE_REPO" | |
| fi | |
| # --- Invalid label --- | |
| if echo "$REVIEW_MESSAGE" | grep -qi 'Missing required contribution'; then | |
| gh pr edit "$PR_NUMBER" --add-label "invalid" -R "$BASE_REPO" | |
| else | |
| gh pr edit "$PR_NUMBER" --remove-label "invalid" -R "$BASE_REPO" | |
| fi | |
| # --- Conflict present label --- | |
| if echo "$REVIEW_MESSAGE" | grep -qi 'archived'; then | |
| gh pr edit "$PR_NUMBER" --add-label "Conflict present" -R "$BASE_REPO" | |
| else | |
| gh pr edit "$PR_NUMBER" --remove-label "Conflict present" -R "$BASE_REPO" | |
| fi | |
| env: | |
| CHANGED_FILES: ${{ env.CHANGED_FILES }} | |
| CONTRIBUTOR: ${{ env.CONTRIBUTOR }} | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| remove-awaiting-on-merge: | |
| if: github.event_name == 'pull_request_target' && github.event.action == 'closed' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Remove 'Awaiting Maintainer Validation' on merged PR | |
| run: | | |
| if [ "${{ github.event.pull_request.merged }}" == "true" ]; then | |
| echo "PR merged — removing 'Awaiting Maintainer Validation' label" | |
| gh pr edit ${{ github.event.pull_request.number }} --remove-label "Awaiting Maintainer Validation" -R "${{ github.event.pull_request.base.repo.full_name }}" | |
| else | |
| echo "PR closed but not merged — skipping label removal" | |
| fi | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |