gitlab server-side-hooks 配置实践
通过 custom_hooks 配置
加入我们要向名为 project 的仓库添加 git hooks 脚本
- 找到 server 端 project 仓库的根目录
- 从头一点点安装部署的 gitlab,路径通常为
/home/git/repositories/<group>/<project>.git
- 通过
Omnibus
安装,路径通常为/var/opt/gitlab/git-data/repositories/<group>/<project>.git
- 从头一点点安装部署的 gitlab,路径通常为
- 在该路径下创建
custom_hooks
文件夹 - 在
custom_hooks
文件下创建 git hook 文件,如pre-receive
等 - 为 git hook 脚本添加可执行权限,如
chmod +x pre-receive
更多细节参考 官方文档
通过 Push-Rules 配置
该方法适用于付费版 gitlab 用户,因公司购买付费版功能,故未做尝试,感性的小伙伴可以参考 官方文档
客户端 git hooks 配置
客户端的 git hooks 配置与平台无关,它只与本地安装的 git 版本有关。至于你用 github 还是 gitlab,或其他第三方 git 代码托管服务,它只会影响 server-side-hooks 的配置方式。
- client 默认 git hooks 存放的文件夹为
{项目根目录}/.git/hooks/
- 这个路径可以通过
git config core.hooksPath {path}
更改 - 在 git hooks 文件夹下创建 git hook 文件即可,如
pre-commit
等 - 为 git hook 脚本添加可执行权限
更多细节参考 官方文档