blob: 489d5fae778118c80853ae67f9e3167b0c8e9290 [file] [log] [blame]
#!/bin/bash
#
# Validate commit message matches our expected format
#
# Arguments:
# <commit> Commit revision to validate
#
# Example:
# ./validate-commit-msg.sh abcdef0
# Exit on first error
set -e
# If we didn't receive a commit, then error out
# DEV: If want the HEAD commit, then use `git rev-parse HEAD`
COMMIT_REV="$1"
if [ -z "$COMMIT_REV" ]; then
echo "Expected a commit revision to validate but received nothing" 1>&2
exit 1
fi
# Resolve our file for output
# DEV: We use `.git` to avoid cluttering the working directory
GIT_DIR="$(git rev-parse --git-dir)"
TARGET_FILENAME=VALIDATE_COMMIT_MSG
TARGET_FILE="$GIT_DIR/$TARGET_FILENAME"
echo "Retrieving relevant commit message for $COMMIT_REV"
# Output our log message to a file
# DEV: We use `--no-merges` to skip merge commits introduced by GitHub
git log --no-merges --format=format:"%s" -n 1 "$COMMIT_REV" > "$TARGET_FILE"
echo "Validating contents of $TARGET_FILE"
cat "$TARGET_FILE"
# Validate our message
./node_modules/.bin/validate-commit-msg "$TARGET_FILENAME"