From 76d8dec65548e2a4ba20e8ce52561ff99b011a0d Mon Sep 17 00:00:00 2001 From: Ikemefuna Obioha Date: Tue, 9 Dec 2025 19:54:07 +0100 Subject: [PATCH 1/3] chore: add Claude-powered commit message generation --- .env.example | 3 +- .husky/prepare-commit-msg | 97 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 .husky/prepare-commit-msg diff --git a/.env.example b/.env.example index c2b1c29a..34acf0ce 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,3 @@ # Rename this file to .env and fill in the values -CLIENT_ID= \ No newline at end of file +CLIENT_ID= +ANTHROPIC_API_KEY= \ No newline at end of file diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg new file mode 100644 index 00000000..16e3fa60 --- /dev/null +++ b/.husky/prepare-commit-msg @@ -0,0 +1,97 @@ +#!/bin/bash + +# .husky/prepare-commit-msg + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 + +# Only generate for normal commits (not merges, squashes, etc.) +if [ -n "$COMMIT_SOURCE" ]; then + exit 0 +fi + +# Get the staged diff +DIFF=$(git diff --cached --no-color) + +# Skip if no changes staged +if [ -z "$DIFF" ]; then + exit 0 +fi + +# Get list of changed files for context +FILES=$(git diff --cached --name-only) + +# Truncate very large diffs to avoid token limits +MAX_CHARS=8000 +if [ ${#DIFF} -gt $MAX_CHARS ]; then + DIFF="${DIFF:0:$MAX_CHARS}... [truncated]" +fi + +# Build the Commitizen-style prompt +read -r -d '' PROMPT << 'EOF' +Generate a Git commit message following the Commitizen conventional commit format. + +FORMAT: +(): + + + +