Skip to content

Commit cb4f440

Browse files
authored
fix(codeowners): Skip requested reviewers (#13705)
Adding a check so that if a codeowner is already in the requested reviewer list then skip it, otherwise every new commit to the PR will trigger the workflow to readd the codeowner.
1 parent 46bfce1 commit cb4f440

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

.github/workflows/codeowner_assignment.yaml

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ jobs:
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
@@ -85,8 +92,12 @@ jobs:
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

Comments
 (0)