Files
edx-platform/scripts/release-email-list.sh
Greg Price 6b7749f25e Fix bug that omits commits in release email script
The command built to generate the list of commits committed but not
authored by a particular individual was incorrect, so some commits
were incorrectly omitted in the table as entries belonging to the
committer.
2013-10-08 15:22:57 -04:00

48 lines
1.6 KiB
Bash
Executable File

#! /bin/bash
# Usage: release-email-list.sh [$PREVIOUS_COMMIT [$CURRENT_COMMIT]]
#
# Prints a list of email addresses and a Confluence style wiki table
# that indicate all of the changes made between $PREVIOUS_COMMIT and $CURRENT_COMMIT
#
# PREVIOUS_COMMIT defaults to origin/release
# CURRENT_COMMIT defaults to HEAD
BASE=${1:-origin/release}
CURRENT=${2:-HEAD}
LOG_CMD="git --no-pager log $BASE..$CURRENT"
RESPONSIBLE=$(sort -u <($LOG_CMD --format='tformat:%ae' && $LOG_CMD --format='tformat:%ce'))
echo "Comparing $BASE to $CURRENT"
echo "~~~~ Email ~~~~~"
echo -n 'To: '
echo ${RESPONSIBLE} | sed "s/ /, /g"
echo
echo "You've made changes that are about to be released. All of the commits
that you either authored or committed are listed below. Please verify them on
\$ENVIRONMENT.
Please record your notes on https://edx-wiki.atlassian.net/wiki/display/ENG/Release+Page%3A+\$DATE
and add any bugs found to the Release Candidate Bugs section"
echo
echo "~~~~~ Wiki Table ~~~~~"
echo "Type Ctrl+Shift+D on Confluence to embed the following table in your release wiki page"
echo
echo '||Author||Changes||Commit Link||Testing Notes||'
for EMAIL in $RESPONSIBLE; do
AUTHORED_BY=$($LOG_CMD --author="<${EMAIL}>" --format='tformat:%h')
COMMITTED_BY=$($LOG_CMD --committer="<${EMAIL}>" --format='tformat:%h')
ALL_COMMITS=$(for HASH in $AUTHORED_BY $COMMITTED_BY; do echo $HASH; done | sort | uniq)
EMAIL_COL="$EMAIL"
for HASH in $ALL_COMMITS; do
git log --format="tformat:|$EMAIL_COL|%s|[commit|https://github.com/edx/edx-platform/commit/%h]| |" -n 1 $HASH
EMAIL_COL=" "
done
done