Skip to content

Commit eb3a427

Browse files
committed
refactor(ci): move /release-note from issue to PR body
Simpler approach - no extra API call needed since we already fetch the PR body when tracing commits.
1 parent 0b8ebf0 commit eb3a427

1 file changed

Lines changed: 11 additions & 23 deletions

File tree

.github/workflows/generate-changelog.yml

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
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"
@@ -56,6 +56,13 @@ jobs:
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
@@ -68,16 +75,6 @@ jobs:
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
@@ -99,15 +96,6 @@ jobs:
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

Comments
 (0)