#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # shellcheck source=common.sh source "${SCRIPT_DIR}/common.sh" NEW_TAG="${1:-}" SUMMARY="${2:-}" PREV_TAG="${3:-}" if [[ -z "$NEW_TAG" ]]; then echo "Usage: generate-release-notes.sh [summary] [prev-tag]" >&2 exit 1 fi if [[ -z "$PREV_TAG" ]]; then PREV_TAG=$(git describe --tags --abbrev=0 "${NEW_TAG}^" 2>/dev/null || git describe --tags --abbrev=0 2>/dev/null || true) fi NOTES="## Summary" if [[ -n "$SUMMARY" ]]; then NOTES="${NOTES} $(strip_bump_prefix "$SUMMARY")" else NOTES="${NOTES} Automated release ${NEW_TAG}." fi if [[ -n "$PREV_TAG" ]]; then NOTES="${NOTES} ## Changes since ${PREV_TAG} $(commits_since "$PREV_TAG")" else NOTES="${NOTES} ## Changes $(commits_between "" HEAD 20)" fi if [[ -n "${GITHUB_OUTPUT:-}" ]]; then { echo 'body<> "$GITHUB_OUTPUT" else echo "$NOTES" fi