#!/bin/bash # Send skillhub-cli release notification to Feishu group via bot webhook # Usage: FEISHU_WEBHOOK_URL=xxx ./scripts/notify-feishu.sh [prev_version] set -euo pipefail WEBHOOK_URL="${FEISHU_WEBHOOK_URL:-}" VERSION="${1:-}" PREV_VERSION="${2:-}" if [ -z "$WEBHOOK_URL" ]; then echo "Error: FEISHU_WEBHOOK_URL is not set" echo "Usage: FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx $0 [prev_version]" exit 1 fi if [ -z "$VERSION" ]; then echo "Error: version is required" echo "Usage: $0 [prev_version]" exit 1 fi # Generate changelog from git log if [ -n "$PREV_VERSION" ]; then RANGE="skillhub-cli/v${PREV_VERSION}..HEAD" else # If no prev version, use last 20 commits touching skillhub-cli/ RANGE="HEAD~20..HEAD" fi # Extract changelog lines, escape for JSON CHANGELOG=$(git log "$RANGE" --oneline --no-merges -- skillhub-cli/ 2>/dev/null | head -20 | \ sed 's/\\/\\\\/g; s/"/\\"/g; s/$/\\n/' | tr -d '\n' | sed 's/\\n$//') if [ -z "$CHANGELOG" ]; then CHANGELOG="详见 npm 页面" fi BODY=$(cat <