gitlab server-side-hooks 配置实践

通过 custom_hooks 配置

加入我们要向名为 project 的仓库添加 git hooks 脚本

  1. 找到 server 端 project 仓库的根目录
    • 从头一点点安装部署的 gitlab,路径通常为 /home/git/repositories/<group>/<project>.git
    • 通过 Omnibus 安装,路径通常为 /var/opt/gitlab/git-data/repositories/<group>/<project>.git
  2. 在该路径下创建 custom_hooks 文件夹
  3. custom_hooks 文件下创建 git hook 文件,如 pre-receive
  4. 为 git hook 脚本添加可执行权限,如 chmod +x pre-receive

更多细节参考 官方文档

通过 Push-Rules 配置

该方法适用于付费版 gitlab 用户,因公司购买付费版功能,故未做尝试,感性的小伙伴可以参考 官方文档

客户端 git hooks 配置

客户端的 git hooks 配置与平台无关,它只与本地安装的 git 版本有关。至于你用 github 还是 gitlab,或其他第三方 git 代码托管服务,它只会影响 server-side-hooks 的配置方式。

  1. client 默认 git hooks 存放的文件夹为 {项目根目录}/.git/hooks/
  2. 这个路径可以通过 git config core.hooksPath {path} 更改
  3. 在 git hooks 文件夹下创建 git hook 文件即可,如 pre-commit
  4. 为 git hook 脚本添加可执行权限

更多细节参考 官方文档