每次写 commit message 都很头疼?让 OpenClaw 来帮你。
方案
写了一个简单的 git hook,在 commit 时自动调用 OpenClaw 生成 commit message。
prepare-commit-msg hook
#!/bin/bash
DIFF=$(git diff --cached --stat)
if [ -z "$DIFF" ]; then
exit 0
fi
DETAILED_DIFF=$(git diff --cached)
MESSAGE=$(curl -s http://localhost:18789/api/chat -H "Authorization: Bearer $OPENCLAW_TOKEN" -d "{"message": "根据以下 git diff 生成简洁的 commit message(英文,conventional commits 格式):\n$DETAILED_DIFF"}" | jq -r '.response')
if [ -n "$MESSAGE" ]; then
echo "$MESSAGE" > "$1"
fi
效果
生成的 commit message 质量挺高的:
feat(order): add CSV export functionality for order list
fix(auth): resolve STS token expiration in OSS upload
refactor(gateway): extract common middleware logic
比之前的 fix bug、update code 强太多了。
优化建议
- 用 Haiku 模型就够了,响应快价格低
- 加个字数限制,不然可能生成一大段
- diff 太大时只传 stat,不传完整 diff
- 生成后可以手动修改再提交
现在团队的 commit 历史终于能看了。