From 263b22c405b77e2c18c6e76a5245cb5af7dd38b0 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Fri, 3 Jan 2025 22:42:13 +0900 Subject: [PATCH] =?UTF-8?q?[TNT-69]=20chore:=20commit=20=EC=A0=91=EB=91=90?= =?UTF-8?q?=EC=82=AC=20=EA=B4=80=EB=A0=A8=20Git=20hook=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * command : sh script/setup_prepare_commit_msg.sh --- script/prepare_commit_msg_script | 18 ++++++++++++++++++ script/setup_prepare_commit_msg.sh | 22 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 script/prepare_commit_msg_script create mode 100644 script/setup_prepare_commit_msg.sh diff --git a/script/prepare_commit_msg_script b/script/prepare_commit_msg_script new file mode 100644 index 00000000..fc0cebb9 --- /dev/null +++ b/script/prepare_commit_msg_script @@ -0,0 +1,18 @@ +#!/bin/sh + +# Extract the current branch name +BRANCH_NAME=$(git symbolic-ref --short HEAD) + +# Identify the JIRA ticket number from the branch name (e.g., "TICKET-231") +JIRA_TICKET=$(echo "$BRANCH_NAME" | grep -oE '[A-Z]+-[0-9]+') + +# Prepend the JIRA ticket to the commit message if found +if [ ! -z "$JIRA_TICKET" ]; then + COMMIT_MSG=$(cat "$1") + # Check if the message already starts with a ticket pattern like [SB-...] + # shellcheck disable=SC2039 + if [[ ! "$COMMIT_MSG" =~ ^\[[A-Z]+-[0-9]+\] ]]; then + # Format the ticket as [TICKET-231] and prepend it + echo "[$JIRA_TICKET] $COMMIT_MSG" > "$1" + fi +fi diff --git a/script/setup_prepare_commit_msg.sh b/script/setup_prepare_commit_msg.sh new file mode 100644 index 00000000..4929852b --- /dev/null +++ b/script/setup_prepare_commit_msg.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +CURRENT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +GIT_HOOK_DIR="$CURRENT_DIR/../.git/hooks" +PREPARE_COMMIT_MSG_SCRIPT="$CURRENT_DIR/prepare_commit_msg_script" +PREPARE_COMMIT_MSG_TARGET_FILE="$GIT_HOOK_DIR/prepare-commit-msg" + + +# Prepare commit msg Hook 추가 (지라 티켓명 자동 추가) +if [[ ! -f "$PREPARE_COMMIT_MSG_SCRIPT" ]] +then + echo "Error: Prepare commit msg hook script not found at $PREPARE_COMMIT_MSG_SCRIPT" + exit 1 +fi + +cat "$PREPARE_COMMIT_MSG_SCRIPT" > "$PREPARE_COMMIT_MSG_TARGET_FILE" +chmod +x "$PREPARE_COMMIT_MSG_TARGET_FILE" + +echo "************************************************" +echo " Prepare commit msg hook installed " +echo "************************************************" +echo "Install path: $(ls "$GIT_HOOK_DIR")"