Skip to content

Commit 1a0841a

Browse files
authored
create workflow to require a reviewer to be set, or a review to be performed (#1303)
1 parent 91bbd61 commit 1a0841a

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: PRs requirements
2+
on:
3+
pull_request:
4+
types:
5+
- opened
6+
- synchronize
7+
- reopened
8+
- review_requested
9+
- review_request_removed
10+
- auto_merge_enabled
11+
12+
jobs:
13+
require-reviewer:
14+
runs-on: nscloud
15+
16+
permissions:
17+
pull-requests: write
18+
19+
steps:
20+
- name: Check for reviewers or reviews
21+
run: |
22+
# Ensure jq is installed
23+
sudo apt-get install jq
24+
25+
jq -r ".pull_request.requested_reviewers" "$GITHUB_EVENT_PATH" | tee reviewers.json
26+
REVIEWER_COUNT=$(cat reviewers.json | jq length)
27+
if [ $REVIEWER_COUNT -ne 0 ]; then
28+
exit 0
29+
fi
30+
31+
jq -r ".pull_request.number" "$GITHUB_EVENT_PATH" | tee number.json
32+
ISSUE_NUMBER=$(cat number.json | tr -d '\n')
33+
34+
curl \
35+
--url https://api.github.com/repos/${{ github.repository }}/pulls/$ISSUE_NUMBER/reviews \
36+
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
37+
--header 'content-type: application/json' | tee reviews.json
38+
39+
REVIEW_COUNT=$(cat reviews.json | jq length)
40+
if [ $REVIEW_COUNT -ne 0 ]; then
41+
exit 0
42+
fi
43+
44+
echo "No reviewer and no review found."
45+
exit 1

0 commit comments

Comments
 (0)