我试图限制在我们的gitlab中提交的二进制文件(EXE,DLL,PDF)。所以我需要添加钩子来全局限制它。我怎样才能做到这一点? Pre-receive挂钩是否适用于此?
添加钩子这个地方是否正确?
的/ opt / gitlab /嵌入/服务/ gitlab - 壳/钩/预接收
任何帮助表示赞赏!
答案 0 :(得分:0)
正如我评论的那样,对于每个项目,请使用custom hooks :( Chained hooks support)
查看“How can I add hooks to gitlab?”的确切步骤,并参与创建专用的repo.git/custom_hooks
子文件夹。
但这是每个存储库,而不是所有存储库 您需要为组的每个repo添加该脚本。
您在普通pre-receive
文件夹中看到的repo.git/hooks
脚本实际上是gitlab-shell hook
文件夹的符号链接,GitLab会将其用于管理访问权限。
答案 1 :(得分:0)
您可以安装一个侧面钩子,但记录不充分。 Gitlab当前正在集成gitlab-shell
和gitaly
。因此,提供说明是一个移动的目标,但是从12.3.5版本开始有效。
gitlab-shell/hooks/*
中的脚本扫描当前存储库和站点范围的目录。但是,不会在全新安装时创建站点范围的目录,您需要自己创建它们。
mkdir -p <XXX>/gitlab-shell/hooks/pre-receive.d # or update.d or post-receive.d
chown git:git <XXX>/gitlab-shell/hooks/pre-receive.d
# link or copy your script of course it needs to be executable by the Gitlab user
ln -s /usr/bin/my-hook <XXX>/gitlab-shell/hooks/pre-receive.d/my-hook