メインコンテンツへスキップ
このクックブックでは、Gitワークフローを強制し、コミットを検証し、ブランチを保護し、変更ログ生成を自動化するためのフックの使用方法を説明します。

動作原理

Gitワークフローフックでできること:
  1. コミットを検証: コミットメッセージが規約に従っているかチェック
  2. ブランチを保護: main/productionへの誤ったコミットを防止
  3. 変更ログを生成: コミットから変更ログエントリを自動作成
  4. プッシュ前チェックを実行: プッシュ前にコードを検証
  5. PR要件を強制: ブランチ名、線形issues等をチェック

前提条件

基本的なGitツール:

基本的なGitフック

コミットメッセージ検証

従来型コミット形式を強制します。 .factory/hooks/validate-commit-msg.sh を作成:
.factory/hooks.json に追加:

ブランチ保護

保護されたブランチへの直接コミットを防止します。 .factory/hooks/protect-branches.sh を作成:

ブランチ命名の強制

フィーチャーブランチが命名規約に従うことを要求: .factory/hooks/validate-branch-name.sh を作成:

高度なGit自動化

変更ログエントリの自動生成

コミットから変更ログエントリを自動作成: .factory/hooks/update-changelog.sh を作成:
PostToolUseに追加:

プッシュ前検証

git pushを許可する前にテストとチェックを実行: .factory/hooks/pre-push-check.sh を作成:

新しいブランチをプッシュ時にPRを自動作成

フィーチャーブランチをプッシュ時に自動的にPRを開く: .factory/hooks/auto-create-pr.sh を作成:

コミットでの共同著者の強制

コミットに共同著者トレーラーを追加: .factory/hooks/add-coauthor.sh を作成:

実際の使用例

例1: モノレポコミット検証

コミットが1つのパッケージのみに触れることを確保: .factory/hooks/validate-monorepo-scope.sh を作成:

例2: リリース自動化

バージョン変更時にリリースを自動タグ付け: .factory/hooks/auto-tag-release.sh を作成:

ベストプラクティス

1

防止にはPreToolUseを使用

悪いコミットが行われる前にブロックします:
2

自動化にはPostToolUseを使用

成功したコミット後のフォローアップアクションを自動化します:
3

明確なエラーメッセージを提供

何が問題でどう修正するかをユーザーに正確に伝えます:
4

フックを設定可能にする

チームが動作をカスタマイズできるようにします:
5

ドライランでフックをテスト

実際にコミットせずにテストします:

トラブルシューティング

問題: 検証が厳しすぎる 解決策: エスケープハッチを追加:
問題: DroidフックとGit/hooksの両方が実行される 解決策: 調整するかどちらかを選択:
問題: テストに時間がかかりすぎる 解決策: 高速チェックのみ実行:

関連項目