我正在运行一个gitlab git服务器。如何阻止无效用户的git提交?
我的大多数用户正在运行3个版本的git中的1个。
git的1.7.1(CentOS用户)
git的1.7.9(所有人)
git的1.8.4(Mac用户)
有些用户不小心犯了,推动代码为root用户。我需要阻止这些用户的提交。
我的pre-commit钩子看起来是这样的:
#!/bin/bash
if [[ $GIT_AUTHOR_NAME == 'root' ]]
then
echo "If you commit as root, you're gonna have a bad time";
echo "Set 'git config user.name' and try again";
exit 1;
fi
这个工程作为一个1.7.9 pre-commit钩子和1.8.x的但不是1.7.1
据this blog,预接收和发布接收挂钩没有任何我正在寻找的环境变量(GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL, GIT_COMMITTER_DATE, EMAIL
)。
有什么办法可以修改这个预先提交的钩子来阻止旧版本的git上的root用户?
http://longair.net/blog/2011/04/09/missing-git-hooks-documentation/
这太好了。它有两个小问题:1.区分大小写2.如果一个提交从*根发生*,则脚本将以1退出。 – spuder
您可以使其不区分大小写。这不应该是一件难事。关于你的观点#2,你不想阻止任何提交从根?因此,当你从根发现任何提交时退出。 –
是的,但是有些来自root的提交已经存在于历史中。我需要阻止未来的根。 – spuder