diff --git a/.github/workflows/approval-check-worker.yml b/.github/workflows/approval-check-worker.yml deleted file mode 100644 index 675ffb9e2110f..0000000000000 --- a/.github/workflows/approval-check-worker.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Approval Check Worker - -on: - pull_request_review: - types: [submitted, dismissed] - -jobs: - check-approvals: - permissions: - contents: write - pull-requests: write - statuses: write - issues: write - - uses: tetherto/qvac-devops/.github/workflows/approval-check-worker.yml@production-workflows-tag - secrets: inherit - with: - pr_number: ${{ github.event.pull_request.number }} - pr_sha: ${{ github.event.pull_request.head.sha }} diff --git a/.github/workflows/approval-worker.yml b/.github/workflows/approval-worker.yml new file mode 100644 index 0000000000000..efc9d9330f653 --- /dev/null +++ b/.github/workflows/approval-worker.yml @@ -0,0 +1,51 @@ +name: Approval Check Worker + +on: + issue_comment: + types: [created] + +jobs: + run-when-command: + if: > + github.event.issue.pull_request != null && + (contains(github.event.comment.body, '/review') || contains(github.event.comment.body, 'review')) + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + issues: write + statuses: write + + outputs: + number: ${{ steps.pr.outputs.number }} + sha: ${{ steps.pr.outputs.sha }} + + steps: + - name: Get latest PR head SHA + id: pr + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const prNumber = context.payload.issue.number; + const { data: pr } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + }); + core.setOutput('number', String(prNumber)); + core.setOutput('sha', pr.head.sha); + + check-approvals: + needs: run-when-command + if: ${{ always() && needs.run-when-command.result == 'success' }} + permissions: + contents: write + pull-requests: write + statuses: write + issues: write + uses: tetherto/qvac-devops/.github/workflows/approval-check-worker.yml@production-workflows-tag + secrets: inherit + with: + pr_number: ${{ fromJSON(needs.run-when-command.outputs.number) }} + pr_sha: ${{ needs.run-when-command.outputs.sha }}