Skip to content

Commit ee0cb20

Browse files
authored
[Expand Team Reviewers] Aligned the workflow with GitHub API changes (#79)
For more details see #79 Key changes: * Filtered out PR author when requesting a review * Extracted review removal into raw gh api call due to a bug
1 parent 29101e9 commit ee0cb20

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

.github/workflows/expand-team-reviewers.yml

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,45 @@ jobs:
3535
owner: ${{ github.repository_owner }}
3636

3737
- name: Expand team to individual reviewers
38+
shell: bash
3839
run: |
3940
org="${{ github.repository_owner }}"
4041
repo="${{ inputs.repository }}"
4142
team="${{ inputs.requested_team }}"
4243
pr="${{ inputs.pull_request_number }}"
44+
pr_author="${{ github.event.pull_request.user.login }}"
45+
# Get team members, but filter out a PR author because review cannot be requested from the author
4346
members=$(gh api /orgs/$org/teams/$team/members \
4447
--paginate \
45-
--jq '.[].login' \
46-
| paste -sd "," -)
47-
if [ -n "$members" ]; then
48+
--jq '.[].login | select(. != "'"$pr_author"'")' )
49+
50+
exit_code=$?
51+
if [[ $exit_code -ne 0 ]]
52+
then
53+
echo "Error: Failed to fetch team members"
54+
echo "$members" # contains the error message
55+
exit $exit_code
56+
fi
57+
58+
if [[ -n "$members" ]]
59+
then
60+
members_list=$(echo "$members" | paste -sd ",")
61+
echo "Requesting review for $repo#$pr from $org/$team members: $members_list"
62+
63+
gh api \
64+
--method DELETE \
65+
-H "Accept: application/vnd.github+json" \
66+
-H "X-GitHub-Api-Version: 2022-11-28" \
67+
/repos/$repo/pulls/$pr/requested_reviewers --input - <<< '{
68+
"reviewers": [],
69+
"team_reviewers": [
70+
"'"$team"'"
71+
]
72+
}'
73+
4874
gh pr edit "$pr" \
4975
--repo "$repo" \
50-
--remove-reviewer "$org/$team" \
51-
--add-reviewer "$members"
76+
--add-reviewer "$members_list"
5277
fi
5378
env:
5479
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}

0 commit comments

Comments
 (0)