Gitlab custom_hooks设置

这篇具有很好参考价值的文章主要介绍了Gitlab custom_hooks设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       大家在使用gitlab的时候,有时候领导是不是想控制一下研发提交代码的日志啥的?比如说要按日志格式写,然而只是口头提要求的话,研发同学根本不care你,哪怕你提供了客户端的git hook模板给研发同学,他也不用!

       那只能在服务器端卡住你了┑( ̄Д  ̄)┍

       gitlab-ce版本没有推送规则设置,只好通过服务器端的server hooks来实现功能。

尽管gitlab官方文档有提供server hooks的文档,但是很多细节都没有说,再加上是英文文档,看起来有些蛋疼,所以自己在这里整理了一下:

官方文档地址:Server hooks | GitLab


本文使用的gitlab-ce版本为 15.0

  • 一.先翻译下官方的使用方法,两种都是要建custom_hooks目录:

1.全局的hook,配置脚本后gitlab系统上所有仓库都受影响,开关在配置文件gitlab.rb中(默认安装路径/etc/gitlab/gitlab.rb),找到下面这条

#gitaly['custom_hooks_dir'] = "/var/opt/gitlab/gitaly/custom_hooks"

去掉注释,配置自己的hook脚本存放路径。

2.配置单独仓库,只对单个仓库生效:

注意:按单个仓库配置的时候,必须也把全局设置中的gitlab.rb文件中的设置打开,指定的目录可以什么都不放,gitlab会自动跳过,也不会报错。

单个仓库配置就必须找到单个仓库实际地址,在仓库目录下加上custom_hooks文件夹,然后再添加hook脚本

如何找到仓库地址?

仓库实际地址就存放在/var/opt/gitlab/git-data/repositories里,老版本的gitlab是按群组和项目路径存储,一目了然。

但14.0之后gitlab的仓库实际存储地址都变成hash后地址了,只能在管理员界面去寻找路径。

如图,举个例子,在管理员界面下的test/1112.git仓库信息

Gitlab custom_hooks设置

 然后在仓库目录下建custom_hooks目录

例如目录:/var/opt/gitlab/git-data/repositories/@hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f99da3a666eec13ab35.git/custom_hooks目录


  • 二.建好custom_hooks目录后就可以加脚本了

第一种方式:

在custom_hooks目录下可以建三个hook文件,名字必须是下面三个之一

pre-receive,update,post-receive

钩子的作用和入参区别具体解释在git官网: Git - Git 钩子 (git-scm.com)

这个钩子其实是属于git使用的范畴了,gitlab只是套了一层

Gitlab custom_hooks设置

一般来说只使用pre-receive的脚本就可以实现功能了

第二种方式:

custom_hooks目录下建这三个目录

pre-receive.d

update.d

post-receive.d

这样在这三个目录下放任意名字的脚本文件都会被执行


  • 三.实际安装的时候会碰到一些坑:

1.为啥我按目录放了,但是脚本就是不执行?

是liunx的权限问题,我是把权限直接都开了,没仔细做分辨

chmod 777 -R custom_hooks

chown -R git:git custom_hooks

chmod +x custom_hooks/pre-receive

2. 权限已经改了,单独仓库已经配置好了,但是脚本死活不生效?

那应该就是全局的设置没打开


hook脚本就得自己写了,可以使用shell,python,ruby等脚本语言,要在脚本文件中明确执行的脚本语言

Gitlab官方文档还提供了一些环境变量可以直接获取,看情况使用,会很方便。

两个hook脚本的例子:

https://fulizhe.blog.csdn.net/article/details/119994111?spm=1001.2014.3001.5502

https://github.com/git/git/blob/master/templates/hooks--update.sample文章来源地址https://www.toymoban.com/news/detail-400284.html

到了这里,关于Gitlab custom_hooks设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gitlab设置ssh密钥详解

    前提条件是,公司的gitlab,运维没有关闭ssh的权限获取,或者叫运维开通那个ssh权限,生成的公钥要给运维那边一个!这样设置是可以成功。 1.在客户端查看有没有密钥 如下图,是找不到ssh的文件夹,证明是没有密钥! 2.在客户端查看当前git的用户名和邮箱 3.输入密码创建

    2023年04月16日
    浏览(38)
  • 记Gitlab备份与设置自动备份

    今天给Gitlab做了一个备份,并且设置了每天自动备份,记录一下。 由于Gitlab Web页面并没有自动备份的相关设置,只有各个项目有一个“导出项目”功能。为了保证安全,先把所有项目全部使用“导出项目”功能导出一遍,并复制出来。通过笔者之前的博文《gitlab迁移记》,

    2024年02月09日
    浏览(34)
  • Centos使用Docker搭建自己的Gitlab(社区版和设置汉化、修改密码、设置SSH秘钥、添加拉取命令端口号、备份至网盘和恢复)

    根据我的经验 部署Gitlab(社区版) 至少需要2核4g的服务器 带宽3~4M 前端自动化(其一)部署gitlab(本章!) 前端自动化(其二)部署jenkins、配置环境、连接gitlab 前端自动化(其三)持续集成和持续部署 1. 在自己电脑上安装终端:宝塔ssl终端 或者 FinalShell,根据喜好安装即

    2024年01月23日
    浏览(40)
  • gitlab设置/修改克隆clone地址端口

    最近由于公司要停测试库云服务器? 什么?要停测试库服务器??? 是的! 你没听错。 真是醉了,多大的集团,为了省钱,也真是拼了, 作为开发人员,没有测试服务器,犹如断臂之人。 所以,在之前搭建环境的时候都没有写文档,今天算是弥补上,以后都可以作为参考

    2024年01月23日
    浏览(24)
  • gitlab docker 忘记root密码,重新设置

    在 Ubuntu 上安装 gitlab docker ,非常简单方便; 安装方法:GitLab Docker images | GitLab 根据提示,可以直到 root 的默认密码在: /srv/gitlab/config/initial_root_password 一般保存一下这个文件;# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours. 根据 这个文件,可以知道,

    2024年02月07日
    浏览(27)
  • Centos使用Docker搭建自己的Gitlab社区版16.8.0-ce.0(设置汉化 修改密码 设置SSH秘钥 添加拉取命令端口号 备份至网盘和恢复)

    根据我的经验 部署Gitlab(社区版) 至少需要2核4g的服务器 带宽3~4M 前端自动化(其一)部署gitlab(本章!) 前端自动化(其二)部署jenkins、配置环境、连接gitlab 前端自动化(其三)持续集成和持续部署 1. 在自己电脑上安装终端:宝塔ssl终端 或者 FinalShell,根据喜好安装即

    2024年01月23日
    浏览(35)
  • gitlab镜像仓库设置及自动同步代码到服务器实现方式

    最近新接了一个需求,有两个不同的gitlab仓库,隶属于不同的部门,我们需要将其他部门的gitlab代码仓库实时或定时同步到我们的gitlab代码仓库上. 网上调研了下实现方案, 大概有两种 方案一 直接设置镜像仓库 方案二 通过gitlab webhooks + jenkins + rsync或者git命令同步 进入代码仓库之

    2024年02月03日
    浏览(40)
  • gitlab如何删除默认main分支,并且把master分支设置主分支

    目录 gitlab如何删除默认main分支,并且把master分支设置主分支 第一步:在gitlab上打开项目 第二步:在Repositcry中打开Branches 第三步:找到project settings,点击进去 第四步:在默认分支Default branch中,把main分支更改master分支,并点击保存更改 第五步:切换回分支详情         此时

    2024年02月16日
    浏览(28)
  • gitlab的使用方法,详解gitlab操作

    1.导读 本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作。 - GitLab简介 - GitLab环境搭建 - GitLab基本使用(组、权限、用户、项目) 2.GitLab简介 GitLab是整个DevOps生命周期的第一个应用

    2023年04月24日
    浏览(21)
  • 在gitlab中使用gitlab-sshd替换ssh服务

    在gitlab15.9之后,gitlab-sshd成为了gitlab的服务组件之一,从而使得open-ssh不再是必需品,本篇主要讲配置。 启用gitlab-sshd git url地址指向2222端口 reconfigure 需要清理下本地的know_hosts文件,然后测试。

    2024年01月19日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包