💯

Gitのpre-pushフックでOpenHandsにテスト実行を強制する

に公開

OpenHandsのようなAIエージェントに開発をさせると、まず気になるのがテスト実行かもしれません
AIに「テストを実行してください」と指示しても、修正を繰り返すうちに忘れてしまうこともしばしば。

またGitHub ActionsなどのCIツールでテストを自動実行することは可能ですが、CIの結果を確認してエラーを修正するまでを自律的に任せるのは難しそうです
特にOpenHandsが待機状態になった場合、CIの結果をリアルタイムで追えないようです

そこでGitのpre-pushフックを利用して、OpenHandsにテスト実行を強制させることにしました

1. Makefileを作成

以下のようなMakefileをリポジトリ直下に作成します

install:
	cp pre-push .git/hooks/pre-push
	npm install

2. pre-pushフックを作成

pre-pushファイルを作成し、テストコマンドを記述します

#!/bin/sh

npm test

pre-pushを実行できるよう、以下のコマンドで権限を与える必要があります

chmod +x pre-push

3. OpenHandsにmake installを自動実行させる

OpenHandsのRepository Microagentsを使用することで、おそらく確実にmake installを実行させることができます

.openhands/microagents/repo.mdファイルを用意して、以下の指示を書いておきます

---
name: repo
type: repo
agent: CodeActAgent
---

作業を開始する前に、`make install`コマンドを実行してください

これでもう煩わしい指示をしなくても、OpenHandsが自律的にテスト実行やコードフォーマットを行い、エラーがあれば修正してくれるようになります

Image from Gyazo

Discussion