Skip to content

Commit 53761ee

Browse files
Pigbibicodex
andauthored
fix dismiss all Dependabot review requests (#112)
Co-authored-by: Codex <noreply@openai.com>
1 parent 5a22005 commit 53761ee

1 file changed

Lines changed: 8 additions & 47 deletions

File tree

.github/workflows/dependabot_review_request_cleanup.yml

Lines changed: 8 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,6 @@ jobs:
3030
REVIEWER: Pigbibi
3131
run: |
3232
set -euo pipefail
33-
review_events() {
34-
gh api --paginate \
35-
"repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/timeline?per_page=100" |
36-
jq -sc --arg reviewer "${REVIEWER}" '
37-
[.[][] | select(
38-
(.event == "review_requested" or .event == "review_request_removed") and
39-
.requested_reviewer.login == $reviewer
40-
)]
41-
'
42-
}
43-
4433
current_review_requests() {
4534
gh pr view "${PR_NUMBER}" \
4635
--repo "${GITHUB_REPOSITORY}" \
@@ -54,23 +43,17 @@ jobs:
5443
exit 0
5544
fi
5645
57-
events_before="$(review_events)"
58-
latest_event="$(jq -r '.[-1].event // ""' <<<"${events_before}")"
59-
latest_actor="$(jq -r '.[-1].actor.login // ""' <<<"${events_before}")"
60-
case "${latest_event}:${latest_actor}" in
61-
'review_requested:dependabot[bot]'|'review_requested:app/dependabot') ;;
46+
latest_request_actor="$(gh api --paginate \
47+
"repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/timeline?per_page=100" |
48+
jq -sr --arg reviewer "${REVIEWER}" \
49+
'[.[][] | select(.event == "review_requested" and .requested_reviewer.login == $reviewer)][-1].actor.login // ""')"
50+
case "${latest_request_actor}" in
51+
'dependabot[bot]'|'app/dependabot') ;;
6252
*)
63-
echo "Latest review event was ${latest_event:-<unknown>} by ${latest_actor:-<unknown>}; preserving the request." >> "${GITHUB_STEP_SUMMARY}"
53+
echo "Latest review request was made by ${latest_request_actor:-<unknown>}; preserving it." >> "${GITHUB_STEP_SUMMARY}"
6454
exit 0
6555
;;
6656
esac
67-
baseline_count="$(jq 'length' <<<"${events_before}")"
68-
69-
review_requests="$(current_review_requests)"
70-
if ! grep -Fqx "${REVIEWER}" <<<"${review_requests}"; then
71-
echo "Review request was removed during cleanup; nothing to dismiss." >> "${GITHUB_STEP_SUMMARY}"
72-
exit 0
73-
fi
7457
7558
if ! gh api --method DELETE \
7659
"repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}/requested_reviewers" \
@@ -83,26 +66,4 @@ jobs:
8366
exit 1
8467
fi
8568
86-
events_after="$(review_events)"
87-
human_intent="$(jq -r --argjson baseline "${baseline_count}" '
88-
[.[$baseline:][] | select(
89-
.actor.login != "dependabot[bot]" and
90-
.actor.login != "app/dependabot" and
91-
.actor.login != "github-actions[bot]" and
92-
.actor.login != "github-actions"
93-
)][-1].event // ""
94-
' <<<"${events_after}")"
95-
96-
if [ "${human_intent}" = 'review_requested' ]; then
97-
review_requests="$(current_review_requests)"
98-
if ! grep -Fqx "${REVIEWER}" <<<"${review_requests}"; then
99-
gh api --method POST \
100-
"repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}/requested_reviewers" \
101-
-f "reviewers[]=${REVIEWER}"
102-
fi
103-
echo "Preserved a concurrent human review request." >> "${GITHUB_STEP_SUMMARY}"
104-
elif [ "${human_intent}" = 'review_request_removed' ]; then
105-
echo "Preserved a concurrent human review removal." >> "${GITHUB_STEP_SUMMARY}"
106-
else
107-
echo "Dismissed Dependabot review request for ${REVIEWER}." >> "${GITHUB_STEP_SUMMARY}"
108-
fi
69+
echo "Dismissed Dependabot review request for ${REVIEWER}." >> "${GITHUB_STEP_SUMMARY}"

0 commit comments

Comments
 (0)