name: Check on: workflow_call: inputs: baseBranch: required: true type: string headBranch: required: true type: string permissions: {} defaults: run: shell: bash jobs: no-channel-base: name: no channel base if: contains(fromJSON(inputs.baseBranch).type, 'channel') runs-on: ubuntu-24.04-arm steps: - run: | cat < review.user.login == 'github-actions[bot]' && ( // If a review is still pending, we can just update this instead // of posting a new one. review.state == 'CHANGES_REQUESTED' || // No need to post a new review, if an older one with the exact // same content had already been dismissed. review.body == body ) ) // Either of those two requests could fail for very long comments. This can only happen // with multiple commits all hitting the truncation limit for the diff. If you ever hit // this case, consider just splitting up those commits into multiple PRs. if (pendingReview) { await github.rest.pulls.updateReview({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.payload.pull_request.number, review_id: pendingReview.id, body }) } else { await github.rest.pulls.createReview({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.payload.pull_request.number, event: 'REQUEST_CHANGES', body }) } - name: Dismiss old reviews if: ${{ github.event_name == 'pull_request_target' && steps.check.outcome == 'success' }} uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 with: script: | await Promise.all( (await github.paginate(github.rest.pulls.listReviews, { owner: context.repo.owner, repo: context.repo.repo, pull_number: context.payload.pull_request.number })).filter(review => review.user.login == 'github-actions[bot]' ).map(async (review) => { if (review.state == 'CHANGES_REQUESTED') { await github.rest.pulls.dismissReview({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.payload.pull_request.number, review_id: review.id, message: 'All cherry-picks are good now, thank you!' }) } await github.graphql(`mutation($node_id:ID!) { minimizeComment(input: { classifier: RESOLVED, subjectId: $node_id }) { clientMutationId } }`, { node_id: review.node_id }) }) ) - name: Log current API rate limits env: GH_TOKEN: ${{ github.token }} run: gh api /rate_limit | jq