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 body
60+ RELEASE_NOTE=$(echo "$PR_BODY" | grep "^/release-note " | sed 's|^/release-note ||' | head -1 || echo "")
61+ if [ -n "$RELEASE_NOTE" ]; then
62+ echo " Found /release-note: $RELEASE_NOTE"
63+ HIGHLIGHTS+=("$RELEASE_NOTE")
64+ fi
65+
5966 # Extract issue numbers from PR body (Fixes #XX, Closes #XX, Resolves #XX)
6067 ISSUE_NUMBERS=$(echo "$PR_BODY" | grep -oiE "(fixes|closes|resolves)\s*#[0-9]+" | grep -oE "[0-9]+" || echo "")
6168
6875
6976 if [ -n "$ISSUE_TITLE" ]; then
7077 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
8178 fi
8279 fi
8380 done
9996
10097 if [ -n "$ISSUE_TITLE" ]; then
10198 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
11199 fi
112100 fi
113101 done
@@ -116,11 +104,11 @@ jobs:
116104 # Build changelog
117105 CHANGELOG=""
118106
119- # Add Highlights section if any /release-note comments exist
107+ # Add Highlights section if any /release-note entries exist
120108 if [ ${#HIGHLIGHTS[@]} -gt 0 ]; then
121109 CHANGELOG="### ✨ Highlights"$'\n\n'
122- for ISSUE_NUM in "${! HIGHLIGHTS[@]}"; do
123- CHANGELOG="${CHANGELOG}- ${HIGHLIGHTS[$ISSUE_NUM] }"$'\n'
110+ for HIGHLIGHT in "${HIGHLIGHTS[@]}"; do
111+ CHANGELOG="${CHANGELOG}- ${HIGHLIGHT }"$'\n'
124112 done
125113 CHANGELOG="${CHANGELOG}"$'\n'
126114 fi
0 commit comments