diff --git a/.github/workflows/pr-label-on-approved.yml b/.github/workflows/pr-label-on-approved.yml index 35e701d02..efdaf746f 100644 --- a/.github/workflows/pr-label-on-approved.yml +++ b/.github/workflows/pr-label-on-approved.yml @@ -1,21 +1,31 @@ -on: pull_request_review -name: Label approved pull requests - -permissions: - contents: read # Required for checking changed files - pull-requests: write # Required for labeling PRs - issues: write # Required for adding/removing labels +name: PR review labeler +on: + workflow_run: + workflows: ["PR review listener"] + types: [completed] jobs: - labelWhenApproved: - if: ${{ github.repository_owner == 'armbian' }} - name: Label when approved + label: + if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.pull_requests[0] }} + name: "Set label" + permissions: + contents: read + issues: write + pull-requests: write runs-on: ubuntu-latest steps: - - name: Label when approved - uses: pullreminders/label-when-approved-action@master - env: - APPROVALS: "1" - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ADD_LABEL: "Ready to merge" - REMOVE_LABEL: "Needs%20review" + - name: Extract PR number + id: pr + run: | + echo "number=${{ github.event.workflow_run.pull_requests[0].number }}" >> "$GITHUB_OUTPUT" + + - name: Label when approved + uses: j-fulbright/label-when-approved-action@v1.2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + label: 'Ready to merge' + require_committers_approval: 'true' + remove_label_when_approval_missing: 'true' + comment: '✅ This PR has been reviewed and approved — all set for merge!' + # action runs on workflow_run, so pass PR number explicitly + pullRequestNumber: ${{ steps.pr.outputs.number }} diff --git a/.github/workflows/pr-review-listener.yml b/.github/workflows/pr-review-listener.yml new file mode 100644 index 000000000..5609391c3 --- /dev/null +++ b/.github/workflows/pr-review-listener.yml @@ -0,0 +1,15 @@ +name: PR review listener +on: + pull_request_review: + types: [submitted] + +jobs: + ping: + if: ${{ github.event.review.state == 'approved' }} + name: "Listen" + permissions: + contents: read + runs-on: ubuntu-latest + steps: + - run: + echo "Approved review detected for PR ${{ github.event.pull_request.number }}"