4848 echo "Changed files:"
4949 echo "$CHANGED_FILES" | tr ' ' '\n' | sed 's/^/- /'
5050 echo "----------------------------------------"
51+
52+ # Get existing reviewers
53+ # merge reqeusted teams and users into a single array
54+ REQUESTED_REVIEWERS=$(gh pr view $PR_NUMBER --json reviewRequests --jq '[.reviewRequests[] | if .__typename == "Team" then .slug else .login end]')
55+ echo "Requested reviewers:"
56+ echo "$REQUESTED_REVIEWERS" | tr ' ' '\n' | sed 's/^/- /'
57+ echo "----------------------------------------"
5158
5259 # Parse CODEOWNERS and find commented lines
5360 # Add newline to the end of the file if it doesn't have one, otherwise sed will not read the last line
8592 for REVIEWER in $REVIEWERS; do
8693 # Remove @ symbol from reviewer name
8794 REVIEWER_NAME=${REVIEWER#@}
88- echo " - Assigning $REVIEWER_NAME to review changes in $FILE"
89- gh pr edit $PR_NUMBER --add-reviewer "$REVIEWER_NAME"
95+ if [[ "$REQUESTED_REVIEWERS" == *"$REVIEWER_NAME"* ]]; then
96+ echo " - $REVIEWER_NAME is already a requested reviewer, skipping"
97+ else
98+ echo " - Assigning $REVIEWER_NAME to review changes in $FILE"
99+ gh pr edit $PR_NUMBER --add-reviewer "$REVIEWER_NAME"
100+ fi
90101 done
91102 fi
92103 else
@@ -98,8 +109,12 @@ jobs:
98109 for REVIEWER in $REVIEWERS; do
99110 # Remove @ symbol from reviewer name
100111 REVIEWER_NAME=${REVIEWER#@}
101- echo " - Assigning $REVIEWER_NAME to review changes in $FILE"
102- gh pr edit $PR_NUMBER --add-reviewer "$REVIEWER_NAME"
112+ if [[ "$REQUESTED_REVIEWERS" == *"$REVIEWER_NAME"* ]]; then
113+ echo " - $REVIEWER_NAME is already a requested reviewer, skipping"
114+ else
115+ echo " - Assigning $REVIEWER_NAME to review changes in $FILE"
116+ gh pr edit $PR_NUMBER --add-reviewer "$REVIEWER_NAME"
117+ fi
103118 done
104119 fi
105120 fi
@@ -111,8 +126,12 @@ jobs:
111126 for REVIEWER in $REVIEWERS; do
112127 # Remove @ symbol from reviewer name
113128 REVIEWER_NAME=${REVIEWER#@}
114- echo " - Assigning $REVIEWER_NAME to review changes in $FILE"
115- gh pr edit $PR_NUMBER --add-reviewer "$REVIEWER_NAME"
129+ if [[ "$REQUESTED_REVIEWERS" == *"$REVIEWER_NAME"* ]]; then
130+ echo " - $REVIEWER_NAME is already a requested reviewer, skipping"
131+ else
132+ echo " - Assigning $REVIEWER_NAME to review changes in $FILE"
133+ gh pr edit $PR_NUMBER --add-reviewer "$REVIEWER_NAME"
134+ fi
116135 done
117136 fi
118137 fi
0 commit comments