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.
48 lines
1.6 KiB
Bash
Executable File
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 |