Skip to content

Commit 9aa2c04

Browse files
Pigbibicodex
andauthored
fix preserve Dependabot reviewer intent (#268)
Co-authored-by: Codex <noreply@openai.com>
1 parent 75dff13 commit 9aa2c04

1 file changed

Lines changed: 17 additions & 39 deletions

File tree

.github/workflows/dependabot_review_request_cleanup.yml

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,14 @@ name: Dismiss Dependabot Review Request
66

77
permissions:
88
contents: read
9-
issues: read
109
pull-requests: write
1110

12-
concurrency:
13-
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
14-
cancel-in-progress: false
15-
1611
jobs:
1712
dismiss-review-request:
1813
if: >-
1914
(github.event.pull_request.user.login == 'dependabot[bot]' ||
2015
github.event.pull_request.user.login == 'app/dependabot') &&
21-
github.event.requested_reviewer.login == 'Pigbibi' &&
22-
(github.actor == 'dependabot[bot]' || github.actor == 'app/dependabot')
16+
github.event.requested_reviewer.login == 'Pigbibi'
2317
runs-on: ubuntu-latest
2418
timeout-minutes: 5
2519
steps:
@@ -30,44 +24,28 @@ jobs:
3024
REVIEWER: Pigbibi
3125
run: |
3226
set -euo pipefail
33-
latest_review_request_actor() {
34-
gh api --paginate \
35-
"repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/timeline?per_page=100" |
36-
jq -sr --arg reviewer "${REVIEWER}" \
37-
'[.[][] | select(.event == "review_requested" and .requested_reviewer.login == $reviewer)][-1].actor.login // ""'
27+
current_review_requests() {
28+
gh pr view "${PR_NUMBER}" \
29+
--repo "${GITHUB_REPOSITORY}" \
30+
--json reviewRequests \
31+
--jq '.reviewRequests[].login'
3832
}
3933
40-
review_requests="$(gh pr view "${PR_NUMBER}" \
41-
--repo "${GITHUB_REPOSITORY}" \
42-
--json reviewRequests \
43-
--jq '.reviewRequests[].login')"
34+
review_requests="$(current_review_requests)"
4435
if ! grep -Fqx "${REVIEWER}" <<<"${review_requests}"; then
4536
echo "No review request for ${REVIEWER}; nothing to dismiss." >> "${GITHUB_STEP_SUMMARY}"
4637
exit 0
4738
fi
4839
49-
latest_request_actor="$(latest_review_request_actor)"
50-
case "${latest_request_actor}" in
51-
'dependabot[bot]'|'app/dependabot') ;;
52-
*)
53-
echo "Latest review request was made by ${latest_request_actor:-<unknown>}; preserving it." >> "${GITHUB_STEP_SUMMARY}"
54-
exit 0
55-
;;
56-
esac
57-
58-
gh api --method DELETE \
40+
if ! gh api --method DELETE \
5941
"repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}/requested_reviewers" \
60-
-f "reviewers[]=${REVIEWER}"
42+
-f "reviewers[]=${REVIEWER}"; then
43+
review_requests="$(current_review_requests)"
44+
if ! grep -Fqx "${REVIEWER}" <<<"${review_requests}"; then
45+
echo "Review request was removed concurrently; nothing to dismiss." >> "${GITHUB_STEP_SUMMARY}"
46+
exit 0
47+
fi
48+
exit 1
49+
fi
6150
62-
latest_request_actor="$(latest_review_request_actor)"
63-
case "${latest_request_actor}" in
64-
'dependabot[bot]'|'app/dependabot')
65-
echo "Dismissed Dependabot review request for ${REVIEWER}." >> "${GITHUB_STEP_SUMMARY}"
66-
;;
67-
*)
68-
gh api --method POST \
69-
"repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}/requested_reviewers" \
70-
-f "reviewers[]=${REVIEWER}"
71-
echo "Restored review request made by ${latest_request_actor:-<unknown>}." >> "${GITHUB_STEP_SUMMARY}"
72-
;;
73-
esac
51+
echo "Dismissed Dependabot review request for ${REVIEWER}." >> "${GITHUB_STEP_SUMMARY}"

0 commit comments

Comments
 (0)