diff --git a/.github/workflows/PRCommentResponder.yaml b/.github/workflows/PRCommentResponder.yaml new file mode 100644 index 000000000..63ca7811f --- /dev/null +++ b/.github/workflows/PRCommentResponder.yaml @@ -0,0 +1,40 @@ +name: PR Comment Responder +on: + issue_comment: + types: [created] # Trigger when comment is created on issue or PR + +jobs: + mentioned: + runs-on: ubuntu-latest + if: contains(github.event.comment.body, '@JuliaControlBot test-plots') # Only run if requested + steps: + - id: get_user_permissons # Get permissions for user who commented + uses: octokit/request-action@v2.x + with: + route: GET /repos/JuliaControl/ControlSystems.jl/collaborators/:user/permission + user: ${{ github.event.comment.user.login }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This is a short-time token generated by github + + - id: parse_permisson # Parse permissions for user who commented, save in "outputs.permission" + uses: gr2m/get-json-paths-action@v1.x + with: + json: ${{ steps.get_user_permissons.outputs.data }} + permission: "permission" + + + - name: Is admin # For debugging, check if admin + if: steps.parse_permisson.outputs.permission == 'admin' + run: | + echo Is admin + - name: Is PR # For debugging, check if comment is in PR + if: github.event.issue.pull_request != null + run: | + echo Is PR + - name: PR ping ControlExamplePlots # Post the ping to ControlExamplePlots to handle, using secret key for JuliaControlBot + if: github.event.issue.pull_request != null && steps.parse_permisson.outputs.permission == 'admin' + run: | + curl -X POST https://api.github.com/repos/JuliaControl/ControlExamplePlots.jl/dispatches \ + -H 'Accept: application/vnd.github.everest-preview+json' \ + -u ${{ secrets.ACCESS_TOKEN_BOT }} \ + --data '{"event_type": "prupdate", "client_payload": { "repository": "'"$GITHUB_REPOSITORY"'", "pr_number": ${{ github.event.issue.number }} }}' diff --git a/.github/workflows/PingControlExamplePlots.yml b/.github/workflows/PingControlExamplePlots.yml index a7b4dfe0d..64658d2a9 100644 --- a/.github/workflows/PingControlExamplePlots.yml +++ b/.github/workflows/PingControlExamplePlots.yml @@ -10,7 +10,11 @@ jobs: steps: - name: PR ping ControlExamplePlots run: | + if [ "$SECRET" != "" ]; then curl -X POST https://api.github.com/repos/JuliaControl/ControlExamplePlots.jl/dispatches \ -H 'Accept: application/vnd.github.everest-preview+json' \ -u ${{ secrets.ACCESS_TOKEN_BOT }} \ --data '{"event_type": "prupdate", "client_payload": { "repository": "'"$GITHUB_REPOSITORY"'", "pr_number": ${{ github.event.number }} }}' + fi + env: + SECRET: ${{ secrets.ACCESS_TOKEN_BOT }}