1- #! /bin/bash
1+ #! /usr/ bin/env bash
22# Intelligent changelog generation using Gemini CLI
33# Fetches SDK changelogs, analyzes them, and generates appropriate format
44
55# Get script directory
66LIB_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
77PROMPT_TEMPLATE=" $LIB_DIR /changelog_prompt.txt"
88
9+ # Source shared utilities
10+ source " $LIB_DIR /version_utils.sh"
11+
912# Fetch SDK changelog from GitHub release notes
1013fetch_github_changelog () {
1114 local repo=" $1 "
@@ -131,7 +134,7 @@ validate_and_fix() {
131134
132135 # 1. Fix version format (remove 'v' prefix if present)
133136 if echo " $changelog_content " | grep -q " Version v[0-9]" ; then
134- sed -i ' ' ' s/Version v\([0-9]\)/Version \1/g' " $changelog_file "
137+ sedi ' s/Version v\([0-9]\)/Version \1/g' " $changelog_file "
135138 echo " ✓ Fixed version format (removed 'v' prefix)" >&2
136139 fixes_made=true
137140 fi
@@ -145,14 +148,14 @@ validate_and_fix() {
145148 # 3. Fix malformed GitHub links
146149 if echo " $changelog_content " | grep -q " github.com/urbanairship/.*releases/tag/[^)]*[^0-9.)]" ; then
147150 # Remove any trailing characters after version number in links
148- sed -i ' ' -E ' s|(https://github.com/urbanairship/[^/]+/releases/tag/[0-9.]+)[^)]*|\1|g' " $changelog_file "
151+ sedi -E ' s|(https://github.com/urbanairship/[^/]+/releases/tag/[0-9.]+)[^)]*|\1|g' " $changelog_file "
149152 echo " ✓ Fixed malformed GitHub release links" >&2
150153 fixes_made=true
151154 fi
152155
153156 # 4. Remove trailing whitespace
154157 if grep -q " [[:space:]]$" " $changelog_file " ; then
155- sed -i ' ' ' s/[[:space:]]*$//' " $changelog_file "
158+ sedi ' s/[[:space:]]*$//' " $changelog_file "
156159 echo " ✓ Removed trailing whitespace" >&2
157160 fixes_made=true
158161 fi
@@ -254,10 +257,11 @@ validate_pr() {
254257 local pr_title=$( echo " $pr_data " | jq -r ' .title' )
255258 local pr_body=$( echo " $pr_data " | jq -r ' .body' )
256259
257- # Expected title format: "Release X.Y.Z"
260+ # Expected title format: "Release X.Y.Z" or "[TEST] Release X.Y.Z"
258261 local expected_title=" Release ${plugin_version} "
262+ local expected_test_title=" [TEST] Release ${plugin_version} "
259263
260- if [ " $pr_title " != " $expected_title " ]; then
264+ if [ " $pr_title " != " $expected_title " ] && [ " $pr_title " != " $expected_test_title " ] ; then
261265 echo " ⚠️ WARNING: PR title is '$pr_title ', expected '$expected_title '" >&2
262266 fi
263267
0 commit comments