mcpField
G
git-hooks

git-hooks

github.com/autumnsgroveテスト・品質671 回インストール5 日前に更新
リポジトリ

git-hooks について

git-hooksは、Gitフックの設定を支援するスキルです。コミットメッセージの検証、秘密情報のスキャン、言語別の品質チェック、push前のテストを扱い、Python、JavaScript、Goなどの導入例も含みます。

主な機能

  1. 01Conventional Commits形式の検証
  2. 02ステージ済み変更の秘密情報スキャン
  3. 03言語別の品質チェック
  4. 04push前のテスト実行
  5. 05導入とトラブルシューティングの案内

活用シーン

  1. 01Python、JavaScript、Goのリポジトリにチェックを設定
  2. 02秘密情報のコミットを防止
  3. 03push前のテストを自動実行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/autumnsgrove/lattice --skill git-hooks

インストール後、Claude Code で/git-hooksを入力して読み込まれたか確認します。

詳細

Git Hooks Skill

使用するタイミング

次の場合にこのスキルを使用します:

  • コミット前フックを設定するとき
  • コミットメッセージの検証を設定するとき
  • シークレットスキャナーをインストールするとき
  • コード品質基準を徹底するとき
  • プッシュ前テストを自動化するとき

クイックインストール

# Use interactive installer (recommended)
./AgentUsage/pre_commit_hooks/install_hooks.sh

# Or manual installation for Python project
cp AgentUsage/pre_commit_hooks/commit-msg .git/hooks/
cp AgentUsage/pre_commit_hooks/pre-commit-python .git/hooks/pre-commit
cp AgentUsage/pre_commit_hooks/pre-commit-secrets-scanner .git/hooks/pre-commit-secrets
cp AgentUsage/pre_commit_hooks/pre-push .git/hooks/
chmod +x .git/hooks/*

利用可能なフック

コアフック(すべてのプロジェクト)
フック目的
commit-msgConventional Commits 形式を検証します
pre-commit-secrets-scannerAPI キーやシークレットの漏えいを防ぎます
言語別
フック言語チェック項目
pre-commit-pythonPythonBlack、Ruff
pre-commit-javascriptJS/TSPrettier、ESLint、TypeScript
pre-commit-goGogofmt、go vet
pre-commit-multi-language混在言語を自動検出し、適切なツールを実行します
自動化フック
フック目的
pre-pushプッシュ前にテストを実行します
post-checkoutブランチ切り替え時に依存関係を自動更新します
post-commitコミットの概要と TODO を表示します

プロジェクト別のフック選択

# Python Project
commit-msg + pre-commit-python + pre-commit-secrets-scanner + pre-push

# JavaScript Project
commit-msg + pre-commit-javascript + pre-commit-secrets-scanner + pre-push

# Go Project
commit-msg + pre-commit-go + pre-commit-secrets-scanner + pre-push

# Multi-language
commit-msg + pre-commit-multi-language + pre-commit-secrets-scanner + pre-push

各フックの動作

commit-msg

コミットメッセージの形式を検証します:

# Accepted formats
feat: Add user authentication
fix: Correct validation error
docs(readme): Update installation

# Rejected
Update files  # No type
feat add feature  # Missing colon
pre-commit-secrets-scanner

公開されたシークレットをスキャンします:

  • Anthropic API キー(sk-ant-...)
  • OpenAI API キー(sk-...)
  • AWS 認証情報(AKIA...)
  • GitHub トークン(ghp_...)
  • ハードコードされたパスワード
pre-commit-python
# Runs automatically on staged .py files
uv run black --check $file
uv run ruff check $file
pre-push
# Runs before push
uv run pytest tests/  # or pnpm test, go test, cargo test

フックのテスト

# Test pre-commit directly
.git/hooks/pre-commit

# Test with sample commit
git add .
git commit -m "test: verify hooks"

# Run with debug output
bash -x .git/hooks/pre-commit

フックの回避(緊急時のみ)

# Skip all hooks
git commit --no-verify -m "Emergency fix"

# Only use when:
# - Emergency production fixes
# - Hook malfunction
# - Intentional override

トラブルシューティング

フックが実行されない
# Check existence
ls -l .git/hooks/

# Fix permissions
chmod +x .git/hooks/*

# Check syntax
bash -n .git/hooks/pre-commit
アクセスが拒否される
chmod +x .git/hooks/*
品質チェックの失敗
# Run tools manually
uv run black --check .
uv run ruff check .

# Fix issues
uv run black .
uv run ruff check --fix .

# Retry commit
git commit -m "Your message"
ツールが見つからない
# Install code quality tools
uv add --dev black ruff

# Verify installation
which black
uv run black --version

カスタムフックの設定

プロジェクトに合わせて pre-commit を変更する
#!/bin/bash
# .git/hooks/pre-commit

# Get staged Python files
FILES=$(git diff --cached --name-only --diff-filter=ACM | grep '\.py$')

if [ -n "$FILES" ]; then
    # Run your tools
    uv run black --check $FILES || exit 1
    uv run ruff check $FILES || exit 1
fi

exit 0

フックの実行順序

  1. pre-commit - コミット前(コード品質)
  2. commit-msg - メッセージ形式を検証
  3. post-commit - コミット後(通知)
  4. pre-push - プッシュ前(テスト)

ベストプラクティス

実施すること ✅
  • すべてのプロジェクトにシークレットスキャナーをインストールする
  • 一貫した履歴を保つために commit-msg を使用する
  • pre-push でテストを実行する
  • インストール後にフックをテストする
実施しないこと ❌
  • フックを頻繁にスキップする
  • シークレットスキャンを無効にする
  • フックの失敗を無視する
  • フックを事前にテストせずにコミットする

関連リソース

AgentUsage/pre_commit_hooks/ を参照してください。内容は次のとおりです:

  • setup_guide.md - インストールの完全ガイド
  • examples.md - カスタムフックの例
  • TROUBLESHOOTING.md - よくある問題
  • 参考用の各フックスクリプト

コメント