feat(review-pr): add rate-anomaly safeguard for review requests #98
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
| # Copyright The Docker Agent Action authors | |
| # SPDX-License-Identifier: Apache-2.0 | |
| name: Self PR Review - Trigger | |
| on: | |
| pull_request: | |
| types: [review_requested] | |
| pull_request_review_comment: | |
| types: [ created ] | |
| # Rate-anomaly safeguard: collapse a burst of review_requested events on the same | |
| # PR at the source — re-requesting a review is redundant, so cancel-in-progress | |
| # drops superseded context-capture runs and only the latest fans out to a review. | |
| # Distinct review comments stay independent (the comment id keys them into their | |
| # own group) so a real reply is never dropped by another comment on the same PR. | |
| concurrency: | |
| group: pr-review-trigger-${{ github.event.pull_request.number }}-${{ github.event.comment.id || 'review-request' }} | |
| cancel-in-progress: true | |
| permissions: {} | |
| jobs: | |
| save-context: | |
| if: > | |
| github.event.comment.user.login != 'docker-agent' && | |
| github.event.comment.user.login != 'docker-agent[bot]' && | |
| github.event.comment.user.type != 'Bot' && | |
| !contains(github.event.comment.body, '<!-- docker-agent-review -->') && | |
| !contains(github.event.comment.body, '<!-- docker-agent-review-reply -->') && | |
| !contains(github.event.comment.body, '<!-- cagent-review -->') && | |
| !contains(github.event.comment.body, '<!-- cagent-review-reply -->') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Save event context | |
| env: | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} | |
| COMMENT_JSON: ${{ toJSON(github.event.comment) }} | |
| run: | | |
| mkdir -p context | |
| printf '%s' "${{ github.event_name }}" > context/event_name.txt | |
| printf '%s' "$PR_NUMBER" > context/pr_number.txt | |
| printf '%s' "$PR_HEAD_SHA" > context/pr_head_sha.txt | |
| if [ "${{ github.event_name }}" = "pull_request_review_comment" ]; then | |
| printf '%s' "$COMMENT_JSON" > context/comment.json | |
| fi | |
| - name: Upload context | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: pr-review-context | |
| path: context/ | |
| retention-days: 1 |