123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/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"
|