Skip to content

Commit 40e92cc

Browse files
authored
sanitizate usernames
1 parent 22b6e51 commit 40e92cc

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

.github/workflows/main-reviewer.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,27 @@ jobs:
1111
- name: Checkout repository
1212
uses: actions/checkout@v3
1313

14-
- name: Extract PR reviewer info
14+
- name: Extract PR reviewer info (sanitize usernames for GitHub mentions)
1515
id: pr_details
1616
run: |
17+
# Only allow valid GitHub username characters: [A-Za-z0-9-]
18+
sanitize() {
19+
echo "$1" | sed 's/[^A-Za-z0-9-]//g'
20+
}
21+
1722
REVIEWERS=$(jq -r '.pull_request.requested_reviewers[].login' < $GITHUB_EVENT_PATH)
23+
SANITIZED_REVIEWERS=""
24+
for r in $REVIEWERS; do
25+
SANITIZED_REVIEWERS="$SANITIZED_REVIEWERS $(sanitize "$r")"
26+
done
1827
NEW_REVIEWER=$(jq -r '.requested_reviewer.login' < $GITHUB_EVENT_PATH)
1928
ACTOR=$(jq -r '.sender.login' < $GITHUB_EVENT_PATH)
20-
echo "REVIEWERS=$REVIEWERS" >> $GITHUB_ENV
21-
echo "NEW_REVIEWER=$NEW_REVIEWER" >> $GITHUB_ENV
22-
echo "ACTOR=$ACTOR" >> $GITHUB_ENV
23-
29+
SANITIZED_NEW_REVIEWER=$(sanitize "$NEW_REVIEWER")
30+
SANITIZED_ACTOR=$(sanitize "$ACTOR")
31+
echo "REVIEWERS=$(echo "$SANITIZED_REVIEWERS" | xargs)" >> $GITHUB_ENV
32+
echo "NEW_REVIEWER=$SANITIZED_NEW_REVIEWER" >> $GITHUB_ENV
33+
echo "ACTOR=$SANITIZED_ACTOR" >> $GITHUB_ENV
34+
2435
- name: Determine checklist type
2536
id: checklist_type
2637
run: |

0 commit comments

Comments
 (0)