我想警告用户他们的代码是否包含某个字符串并通过电子邮件提醒用户。
现在我正在使用post-receive钩子,因为检测需要在服务器端完成。
我正在更新服务器端存储库并运行类似git diff-tree -r --name-only --no-commit-id $2 | xargs grep foo
的内容来检测错误的字符串“foo”。
这种方法存在问题:
git show $2 | grep ^+ ...
有更好的方法吗?
答案 0 :(得分:1)
如果您使用的是gitolite V3(或'g3'),请尝试将支票放入VREF。
对于适用于此用户的规则中以VREF /
FOO
/开头的每个refex,将触发对名为FOO
的程序的调用(stored in$LOCAL_CODE/VREF
)。 请注意,如果VREF规则不适用于该用户,则甚至不会调用该程序。
您可以准确控制要应用此警告的用户(组) 如果不满足您的条件(没有坏字符串),您可以拒绝推送。
然而,仍然需要首先更新工作目录(因为Gitolite默认只管理裸存储库)