diff --git a/.github/workflows/wiki_label.yml b/.github/workflows/wiki_label.yml new file mode 100644 index 000000000000..e1612b279bc4 --- /dev/null +++ b/.github/workflows/wiki_label.yml @@ -0,0 +1,49 @@ +name: 'PR Wiki Label' +on: + issue_comment: + types: [created] + +jobs: + wiki-label: + runs-on: ubuntu-latest + if: github.event.issue.pull_request && github.event.comment.body == '!wiki_label' + permissions: + issues: write + pull-requests: write + steps: + - name: Check commenter authorization + id: check-auth + run: | + IFS=',' read -ra WIKI_MANAGERS <<< "${{ vars.WIKI_MANAGERS }}" + COMMENTER_ID="${{ github.event.comment.user.id }}" + if [[ " ${WIKI_MANAGERS[@]} " =~ " ${COMMENTER_ID} " ]]; then + echo "authorized=true" >> $GITHUB_OUTPUT + else + echo "authorized=false" >> $GITHUB_OUTPUT + fi + + - name: Add thumbs up reaction and Wiki label + if: steps.check-auth.outputs.authorized == 'true' + run: | + # Add thumbs up reaction + curl -X POST \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/${{ github.repository }}/issues/comments/${{ github.event.comment.id }}/reactions" \ + -d '{"content":"+1"}' + + # Add label to PR + curl -X POST \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels" \ + -d '["Requires Wiki Update"]' + + - name: Unauthorized user thumbs down reaction + if: steps.check-auth.outputs.authorized == 'false' + run: | + curl -X POST \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/${{ github.repository }}/issues/comments/${{ github.event.comment.id }}/reactions" \ + -d '{"content":"-1"}'