@@ -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