我知道无法将custom_hooks应用于项目提交。
现在可以用gitlab 8吗?
感谢。
答案 0 :(得分:3)
Here是描述如何操作的完整文档。
注意:必须在GitLab服务器的文件系统上配置自定义git挂钩。
只有GitLab服务器管理员才能完成这些任务。如果您没有文件系统访问权限,请浏览webhooks作为选项。
对于用户可配置的Git Hooks界面,请参阅GitLab企业版Git Hooks。
Git本身支持在不同操作上执行的挂钩。服务器端git挂钩的示例包括预接收,后接收和更新。有关每种挂钩类型的详细信息,请参阅Git SCM服务器端挂钩。
从gitlab-shell 2.2.0版本开始(需要GitLab 7.5+),GitLab管理员可以为任何GitLab项目添加自定义git钩子。
通常,git钩子放在存储库或项目的钩子目录中。 GitLab从每个项目的hooks目录创建一个符号链接到gitlab-shell hooks目录,以便于gitlab-shell升级之间的维护。因此,自定义挂钩的实现方式略有不同。但是,一旦创建了钩子,行为就完全相同了。请按照以下步骤设置自定义挂钩。
- 选择需要自定义git hook的项目。
在GitLab服务器上,导航到项目的存储库目录。对于从源安装,路径通常为
/home/git/repositories/<group>/<project>.git
。 对于Omnibus,通常会安装路径/var/opt/gitlab/git-data/repositories/<group>/<project>.git.
在此位置创建一个名为custom_hooks的新目录。
在新的custom_hooks目录中,创建一个名称与钩子类型匹配的文件。对于预接收挂钩,文件名应该是预先接收的,没有扩展名。
使钩子文件可执行,并确保它由git拥有。
- 编写代码以使git钩子函数按预期方式运行。钩子可以是任何语言。确保&#39; shebang&#39;在顶部正确反映了语言类型。例如,如果脚本在Ruby中,则shebang可能是
醇>#!/usr/bin/env ruby
。
那就是它!假设正确实现了钩子代码,钩子将适当地触发。