美文网首页
gitlab pre-receive钩子

gitlab pre-receive钩子

作者: hanshan426 | 来源:发表于2019-01-07 20:26 被阅读0次

概述

当我们需要对git提交的相关内容做校验时,可以使用服务端的pre-receive钩子。相对于客户端的pre-commit钩子来说,它便于统一管理维护。pre-commit需要将处理脚本添加到客户端代码仓库的.git/hooks目录下,当clone后需要重新进行添加,所以通常采用服务端的pre-receive来替代。

pre-receive可以对push的内容做校验,如果校验脚本正常退出(exit 0)即允许push,反之会拒绝客户端进行push操作。

服务端配置

  • 查看hooks脚本路径
sudo vi /etc/gitlab/gitlab.rb
#gitlab_shell['custom_hooks_dir'] = "/opt/gitlab/embedded/service/gitlab-shell/hooks"
$ll
total 12
-rwxr-xr-x 1 root root 686 Jan  3 07:42 post-receive
-rwxr-xr-x 1 root root 296 Jan  7 19:05 pre-receive
-rwxr-xr-x 1 root root 593 Jan  3 07:42 update

pre-receive脚本可以是shell、python、ruby等任何可执行脚本,需要注意它的权限。pre-receive钩子会从标准输入获取三个参数:旧版本号,新版本号,分支。同时还提供了内置的许多环境变量可以使用,详情可以参考官方文档

  • 编写脚本
    这里以校验提交内容为例给出示例脚本,仅供参考,更多的示例请查看官方示例
#!/bin/bash

while read oldVersion newVersion branch; do
    echo ${oldVersion}
    echo ${newVersion}
    echo ${branch}

    diff=`git diff --name-status $oldVersion $newVersion`
    echo $diff

    for file in $diff
    do
        if [ "${#file}" -lt "2" ];then
            continue
        fi
        echo $file

        diffContent=`git show $newVersion:test.txt`
        echo $diffContent
        #对diff文件内容做校验,如果不符合条件则exit -1
    done
done

exit 0

相关文章

  • gitlab pre-receive钩子

    概述 当我们需要对git提交的相关内容做校验时,可以使用服务端的pre-receive钩子。相对于客户端的pre-...

  • jenkins集成gitlab钩子

    持续集成 先打开我们的jenkins网站 选择一个项目 点击配置 选择构建触发器 勾选gitlab触发器,并选择高...

  • jenkins-流水线【4】项目回滚

    前面利用gitlab钩子触发push 动作,通知jenkins 分配salve节点执行 构建java项目,利用an...

  • 盐津大关河边有一棵红毛悬钩子树

    开花的悬钩子 是悬钩子 不开花的悬钩子 还是悬钩子 大关河边的悬钩子 不开花 就没有果实 没有果实的悬钩子 谁会在...

  • vue路由钩子

    路由钩子 1.全局钩子2.某个路由独享钩子3.组件内钩子 全局钩子 beforeEach(全局前置守卫)、afte...

  • gitlab点击项目 报500错误解决方案

    gitlab issueshttps://gitlab.com/gitlab-org/gitlab-foss/-/...

  • Git钩子详解

    Git钩子详解 钩子 Git钩子是在Git仓库中特定事件发生时自动运行的脚本。可以定制一些钩子,这些钩子可以在特定...

  • Windows消息钩取

    下钩子函数: 钩子的过程需要在DLL内部 dwThreadId为0时 钩子为全局钩子 hMod就当成dll的句柄(...

  • Linux 启动/停止/重启gitlab

    启动gitlab服务 sudo gitlab-ctl start gitlab服务停止 sudo gitlab-c...

  • 钩子,钩子,都是钩子,果真是个钩子

    每年都要流行新的东西,别的不知道,要说今年流行的装饰元素,那非黄铜莫属。 其实早在公元1230年,黄铜制品就开始在...

网友评论

      本文标题:gitlab pre-receive钩子

      本文链接:https://www.haomeiwen.com/subject/uwsprqtx.html