File tree Expand file tree Collapse file tree 1 file changed +16
-5
lines changed Expand file tree Collapse file tree 1 file changed +16
-5
lines changed Original file line number Diff line number Diff 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 : |
You can’t perform that action at this time.
0 commit comments