是否可以在gitlab 8中使用自定义挂钩进行项目提交?

是否可以在gitlab 8中使用自定义挂钩进行项目提交?,git,gitlab,githooks,Git,Gitlab,Githooks,我知道不可能将自定义_钩子应用于项目提交 现在使用gitlab 8可以做到这一点吗 谢谢。是描述如何操作的完整文档 注意:必须在GitLab服务器的文件系统上配置自定义git挂钩 只有GitLab服务器管理员才能完成这些任务。如果您没有文件系统访问权限,请将Webhook作为一个选项进行探索 有关用户可配置的Git钩子接口,请参阅GitLab Enterprise Edition Git钩子 Git本机支持在不同操作上执行的钩子。服务器端git挂钩的示例包括预接收、后接收和更新。有关每种钩子类型

我知道不可能将自定义_钩子应用于项目提交

现在使用gitlab 8可以做到这一点吗

谢谢。

是描述如何操作的完整文档

注意:必须在GitLab服务器的文件系统上配置自定义git挂钩

只有GitLab服务器管理员才能完成这些任务。如果您没有文件系统访问权限,请将Webhook作为一个选项进行探索

有关用户可配置的Git钩子接口,请参阅GitLab Enterprise Edition Git钩子

Git本机支持在不同操作上执行的钩子。服务器端git挂钩的示例包括预接收、后接收和更新。有关每种钩子类型的更多信息,请参见Git SCM服务器端钩子

从gitlab shell版本2.2.0(需要gitlab 7.5+)开始,gitlab管理员可以向任何gitlab项目添加自定义git挂钩

安装程序 通常,git钩子放在存储库或项目的钩子目录中。GitLab创建了一个从每个项目的hooks目录到GitLab shell hooks目录的符号链接,以便于GitLab shell升级之间的维护。因此,定制钩子的实现略有不同。但是,一旦创建了钩子,行为就完全相同了。按照以下步骤设置自定义挂钩

  • 选择一个需要自定义git挂钩的项目
  • 在GitLab服务器上,导航到项目的存储库目录。对于源代码安装,路径通常是
    /home/git/repositories//.git
    。 对于Omnibus安装,路径通常为
    /var/opt/gitlab/git data/repositories/.git.

  • 在此位置创建一个名为custom_hooks的新目录

  • 在新的自定义挂钩目录中,创建一个名称与挂钩类型匹配的文件。对于预接收挂钩,文件名应为pre-receive,不带扩展名

  • 确保钩子文件可执行,并确保它属于git

  • 编写代码使git钩子按预期运行。钩子可以是任何语言。确保顶部的“shebang”正确反映语言类型。例如,如果脚本使用Ruby,则shebang可能是
    #/usr/bin/env ruby

  • 就这样!假设钩子代码得到正确实现,钩子将根据需要启动。

    是的,我只是在gitlab 8.2.2上测试了它,它就像一个符咒一样工作。这只适用于单个项目,有没有办法为整个存储库添加钩子?