#!/usr/bin/env bash set -euo pipefail # generate-release-notes.sh # Generate release notes from git history # Usage: generate-release-notes.sh if [[ $# -ne 2 ]]; then echo "Usage: $0 " >&2 exit 1 fi NEW_VERSION="$1" LAST_TAG="$2" # Get commits since last tag if [ "$LAST_TAG" = "v0.0.0" ]; then # Check how many commits we have and use that as the limit COMMIT_COUNT=$(git rev-list --count HEAD) if [ "$COMMIT_COUNT" -gt 10 ]; then COMMITS=$(git log --oneline --pretty=format:"- %s" HEAD~10..HEAD) else COMMITS=$(git log --oneline --pretty=format:"- %s" HEAD~$COMMIT_COUNT..HEAD 2>/dev/null || git log --oneline --pretty=format:"- %s") fi else COMMITS=$(git log --oneline --pretty=format:"- %s" $LAST_TAG..HEAD) fi # Create release notes cat > release_notes.md << EOF This is the latest set of releases that you can use with your agent of choice. We recommend using the Specify CLI to scaffold your projects, however you can download these independently and manage them yourself. EOF echo "Generated release notes:" cat release_notes.md