feat(git): automatically add refs to commit

...messages

Add a `prepare-commit-msg` hook to automaically add `Refs` values, such
as issue IDs or commit SHAs to a Git commit message body by replacing an
`ISSUE_ID` placeholder that can be added to a commit message template.
This commit is contained in:
Oliver Davies 2023-08-26 22:19:35 +01:00
parent 17142d868f
commit ac854bf8c7

View file

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# {{ managedText }}
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/# ISSUE_ID/Refs: $ISSUE_ID/" "$1"
fi
fi