4141
4242 # Collect all closed issues by tracing commits -> PRs -> issues
4343 declare -A CLOSED_ISSUES # issue_number -> issue_title
44- declare -A HIGHLIGHTS # issue_number -> highlight message
44+ declare -a HIGHLIGHTS # array of highlight messages
4545
4646 for SHA in $COMMIT_SHAS; do
4747 echo "Processing commit: $SHA"
5656 if [ -n "$PR_NUMBER" ]; then
5757 echo " Found PR #$PR_NUMBER"
5858
59+ # Check for /release-note in PR comments
60+ PR_COMMENTS=$(gh pr view "$PR_NUMBER" --json comments --jq '.comments[].body' 2>/dev/null || echo "")
61+ RELEASE_NOTE=$(echo "$PR_COMMENTS" | grep "^/release-note " | sed 's|^/release-note ||' | head -1 || echo "")
62+ if [ -n "$RELEASE_NOTE" ]; then
63+ echo " Found /release-note: $RELEASE_NOTE"
64+ HIGHLIGHTS+=("$RELEASE_NOTE")
65+ fi
66+
5967 # Extract issue numbers from PR body (Fixes #XX, Closes #XX, Resolves #XX)
6068 ISSUE_NUMBERS=$(echo "$PR_BODY" | grep -oiE "(fixes|closes|resolves)\s*#[0-9]+" | grep -oE "[0-9]+" || echo "")
6169
6876
6977 if [ -n "$ISSUE_TITLE" ]; then
7078 CLOSED_ISSUES[$ISSUE_NUM]="$ISSUE_TITLE"
71-
72- # Check for /release-note comment on the issue
73- COMMENTS=$(gh issue view "$ISSUE_NUM" --json comments --jq '.comments[].body' 2>/dev/null || echo "")
74-
75- RELEASE_NOTE=$(echo "$COMMENTS" | grep "^/release-note " | sed 's|^/release-note ||' | head -1 || echo "")
76-
77- if [ -n "$RELEASE_NOTE" ]; then
78- echo " Found /release-note: $RELEASE_NOTE"
79- HIGHLIGHTS[$ISSUE_NUM]="$RELEASE_NOTE"
80- fi
8179 fi
8280 fi
8381 done
9997
10098 if [ -n "$ISSUE_TITLE" ]; then
10199 CLOSED_ISSUES[$ISSUE_NUM]="$ISSUE_TITLE"
102-
103- # Check for /release-note comment
104- COMMENTS=$(gh issue view "$ISSUE_NUM" --json comments --jq '.comments[].body' 2>/dev/null || echo "")
105- RELEASE_NOTE=$(echo "$COMMENTS" | grep "^/release-note " | sed 's|^/release-note ||' | head -1 || echo "")
106-
107- if [ -n "$RELEASE_NOTE" ]; then
108- echo " Found /release-note: $RELEASE_NOTE"
109- HIGHLIGHTS[$ISSUE_NUM]="$RELEASE_NOTE"
110- fi
111100 fi
112101 fi
113102 done
@@ -116,11 +105,11 @@ jobs:
116105 # Build changelog
117106 CHANGELOG=""
118107
119- # Add Highlights section if any /release-note comments exist
108+ # Add Highlights section if any /release-note entries exist
120109 if [ ${#HIGHLIGHTS[@]} -gt 0 ]; then
121110 CHANGELOG="### ✨ Highlights"$'\n\n'
122- for ISSUE_NUM in "${! HIGHLIGHTS[@]}"; do
123- CHANGELOG="${CHANGELOG}- ${HIGHLIGHTS[$ISSUE_NUM] }"$'\n'
111+ for HIGHLIGHT in "${HIGHLIGHTS[@]}"; do
112+ CHANGELOG="${CHANGELOG}- ${HIGHLIGHT }"$'\n'
124113 done
125114 CHANGELOG="${CHANGELOG}"$'\n'
126115 fi
0 commit comments