-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall_hook.sh
More file actions
46 lines (34 loc) · 1.02 KB
/
install_hook.sh
File metadata and controls
46 lines (34 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env bash
set -e
HOOK_DIR=".git/hooks"
HOOK_FILE="$HOOK_DIR/prepare-commit-msg"
if [ ! -d ".git" ]; then
echo "Not a git repository. Run this from the root of the repo."
exit 1
fi
mkdir -p "$HOOK_DIR"
cat > "$HOOK_FILE" <<'EOF'
#!/usr/bin/env bash
# Git hook: prepare-commit-msg
# Auto-generate commit message using commitdoc.py
COMMIT_MSG_FILE="$1"
COMMIT_SOURCE="$2"
# Skip for merge commits, template commits, or if message already exists
if [ -n "$COMMIT_SOURCE" ]; then
exit 0
fi
REPO_ROOT="$(git rev-parse --show-toplevel)"
# You can override provider globally:
# export COMMITDOC_PROVIDER=openrouter
PROVIDER="${COMMITDOC_PROVIDER:-openrouter}"
# Default model for OpenRouter; override if needed:
# export COMMITDOC_MODEL="anthropic/claude-3.5-sonnet"
MODEL="${COMMITDOC_MODEL:-gpt-4o-mini}"
python3 "$REPO_ROOT/commitdoc.py" \
--provider "$PROVIDER" \
--model "$MODEL" \
--write-file "$COMMIT_MSG_FILE" || exit 0
exit 0
EOF
chmod +x "$HOOK_FILE"
echo "prepare-commit-msg hook installed successfully."