Skip to content

Commit b7c180c

Browse files
prevent sigpipe exits in suggest-version-ai.sh (#699)
1 parent d22c536 commit b7c180c

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

bin/suggest-version-ai.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,11 @@ if [ -z "$BASE_REF" ]; then
3333
exit 1
3434
fi
3535

36-
# Cap diff size to stay within context
36+
# Cap diff size to stay within context (avoid SIGPIPE when diff is large: head exits first)
3737
MAX_DIFF_CHARS=50000
38+
set +o pipefail
3839
DIFF="$(git diff "$BASE_REF"..HEAD 2>/dev/null | head -c "$MAX_DIFF_CHARS")"
40+
set -o pipefail
3941

4042
# Get API key from 1Password if not set (default ref; override with OP_ANTHROPIC_API_KEY_REF)
4143
OP_ANTHROPIC_API_KEY_REF="${OP_ANTHROPIC_API_KEY_REF:-op://Shared/Anthropic API Key/credential}"
@@ -116,7 +118,9 @@ if [ -z "$CONTENT" ]; then
116118
exit 1
117119
fi
118120

121+
set +o pipefail
119122
BUMP=$(echo "$CONTENT" | tr '[:upper:]' '[:lower:]' | grep -oE 'major|minor|patch' | head -1)
123+
set -o pipefail
120124
case "$BUMP" in
121125
major|minor|patch) ;;
122126
*)
@@ -126,11 +130,13 @@ case "$BUMP" in
126130
esac
127131

128132
CHANGELOG_MARKER='---CHANGELOG---'
133+
set +o pipefail
129134
if echo "$CONTENT" | grep -qF -- "$CHANGELOG_MARKER"; then
130135
CHANGELOG=$(echo "$CONTENT" | sed -n "/${CHANGELOG_MARKER}/,\$ p" | tail -n +2)
131136
else
132137
CHANGELOG=$(echo "$CONTENT" | sed -n '2,$ p')
133138
fi
139+
set -o pipefail
134140
mkdir -p "$(dirname "$RELEASE_NOTES_FILE")"
135141
echo "$CHANGELOG" > "$RELEASE_NOTES_FILE"
136142

0 commit comments

Comments
 (0)