Skip to content

Commit

Permalink
chore(changelog): add script to help creating correct changelog
Browse files Browse the repository at this point in the history
`make -C CHANGELOG` to use it.

KAG-2527
  • Loading branch information
dndx committed Sep 7, 2023
1 parent 0408346 commit c5b4106
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 0 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG/Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
.PHONY: new install_dependencies

new:
./new.sh

install_dependencies:
luarocks install penlight --local
luarocks install lyaml --local
79 changes: 79 additions & 0 deletions CHANGELOG/new.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#!/bin/bash
set -e

echo "What is this changelog for (kong, kong-ee, kong-manager)?"
select component in kong kong-ee kong-manager; do
case $component in
kong|kong-ee|kong-manager) break;;
*) echo "Invalid option. Please select again.";;
esac
done

echo

read -p "What is the title of the change? " title

echo

echo "What is the type of the change (feature, bugfix, dependency, deprecation, breaking_change, performance)?"
select type in feature bugfix dependency deprecation breaking_change performance; do
case $type in
feature|bugfix|dependency|deprecation|breaking_change|performance) break;;
*) echo "Invalid option. Please select again.";;
esac
done

echo

echo "What is the scope of the change (Core, Plugin, PDK, Admin API, Performance, Configuration, Clustering)?"
select scope in Core Plugin PDK "Admin API" Performance Configuration Clustering; do
case $scope in
Core|Plugin|PDK|"Admin API"|Performance|Configuration|Clustering) break;;
*) echo "Invalid option. Please select again.";;
esac
done

echo

read -p "What are the associated PRs? (comma-separated, without spaces e.g. 123,124,125) " pr_input
IFS=',' read -ra prs <<< "$pr_input"

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
file_name="$SCRIPT_DIR/unreleased/$component/${prs[0]:-unknown}.yml"

echo

echo "New changelog will be created at $file_name"

echo

read -p "What are the associated Jira tickets? (comma-separated, without spaces e.g. FTI-123,FTI-124) " jira_input
IFS=',' read -ra jiras <<< "$jira_input"

echo

read -p "What are the associated issues? (comma-separated, without spaces e.g. 123,124,125) " issue_input
IFS=',' read -ra issues <<< "$issue_input"

echo "message: $title" > $file_name
echo "type: $type" >> $file_name
echo "scope: $scope" >> $file_name
echo "prs:" >> $file_name
for pr in "${prs[@]}"; do
echo " - $pr" >> $file_name
done
echo "jiras:" >> $file_name
for jira in "${jiras[@]}"; do
echo " - \"$jira\"" >> $file_name
done
echo "issues:" >> $file_name
for issue in "${issues[@]}"; do
echo " - $issue" >> $file_name
done

echo

echo "Changelog file generated as $file_name:"
echo "Be sure to \"git add\" and \"git commit\" this file"
echo "================================================================"
cat $file_name

0 comments on commit c5b4106

Please sign in to comment.