diff --git a/.githooks/prepare-commit-msg b/.githooks/prepare-commit-msg new file mode 100755 index 0000000..d7bf4c7 --- /dev/null +++ b/.githooks/prepare-commit-msg @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs. + +set -euo pipefail + +# Load the issue ID from an `.issue-id` file within the project and replace the +# `ISSUE_ID` placeholder within a Git commit message. +# +# For example, running `echo "OD-123" > .issue-id` will add `Refs: OD-123` to +# the commit message. +# +# This also works with multiple issue IDs in the same string, e.g. +# "OD-123 OD-456". + +PROJECT_DIR=$(git rev-parse --show-toplevel) # Get the root directory of the repo +ISSUE_FILE="$PROJECT_DIR/.issue-id" + +if [ -f "${ISSUE_FILE}" ]; then + ISSUE_ID=$(cat "${ISSUE_FILE}" | sed 's/ /, /g') + + if [ -n "${ISSUE_ID}" ]; then + sed -i.bak "s/# Refs:/Refs: $ISSUE_ID/" "$1" + fi +fi