consul/build-support/scripts/gen-changelog.sh

81 lines
1.5 KiB
Bash
Executable File

#! /bin/bash
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
set -eo pipefail
pr_number=$(gh pr list -H "$(git rev-parse --abbrev-ref HEAD)" -q ".[0].number" --json "number")
if [ -z "$pr_number" ]; then
echo "Error: Could not find PR number."
exit 1
fi
# check if this changelog is referencing an enterprise change
curdir=$(pwd)
filename=".changelog/$pr_number.txt"
if [[ ! $curdir == *"enterprise"* ]]; then
is_enterprise="n"
read -rp "Is this an enterprise PR? (y/n): " is_enterprise
if [[ $is_enterprise == "y" ]]; then
filename=".changelog/_$pr_number.txt"
fi
else
filename=".changelog/_$pr_number.txt"
fi
# create a new changelog file
touch "$filename"
echo "Created a new changelog file for PR $pr_number."
# prompt user to pick from list of types of changlog from "breaking-change", "security", "feature", "deprecation", or "bug"
echo "Please select the type of change:"
echo "1. breaking-change"
echo "2. security"
echo "3. feature"
echo "4. deprecation"
echo "5. bug"
if [ -z "$1" ]; then
read -rp "Enter your choice: " choice
else
choice=$1
fi
type=""
case $choice in
1)
type="breaking-change"
;;
2)
type="security"
;;
3)
type="feature"
;;
4)
type="deprecation"
;;
5)
type="bug"
;;
*)
echo "Invalid choice. Please select a number from 1 to 5."
exit 1
;;
esac
msg=""
read -erp $'Please enter the changelog message:\n' msg
echo -e "\`\`\`release-note:$type\n$msg\n\`\`\`" >>"$filename"
echo -e "\nChangelog added to $filename. Contents:\n"
cat "$filename"