gitlab 配置 自定義鈎子 pre-receive


gitlab配置custom hook

設置custom_hooks路徑

修改 gitlab 中的vi /etc/gitlab/gitlab.rb

注:這里直接去掉注釋使用自帶的

gitlab_shell['custom_hooks_dir'] = "/opt/gitlab/embedded/service/gitlab-shell/hooks"

啟用配置

sudo gitlab-ctl reconfigure


創建hook文件

自定義腳本目錄要符合<custom_hooks_dir>/<hook_name.d>/* 的規范。具體就是

  • 在自定的custom_hooks_dir 目錄下可創建三個文件夾對應三類 server hook name :

    • pre-receive.d
    • update.d
    • post-receive.d
  • 在每個文件夾下可以創建任意文件,在對應的hook時期,gitlab就會主動調用

  • 文件名以~結尾的文件會被忽略

編寫 hook 腳本

hook 腳本就是git 自身的規范,寫shell,python、ruby 都可以

留意腳本最后的退出值:0 正常退出,用戶可以 push;非 0 異常退出,中斷提交(pre-receive 和 update) 。 細節參見: 5.4 Git鈎子:自定義你的工作流 · geeeeeeeeek/git-recipes Wiki · GitHub

如果想讓用戶 push 時看到相應的日志直接在腳本中 echo 即可。

這里舉兩個例子:

🌰:Say hi.

#!/bin/sh echo "Say hi from gitlab servertes ok 😄" exit 0



參考文檔: https://java.isture.com/tools/gitlab/custom-hook.html#_1-4-%E7%BC%96%E5%86%99-hook-%E8%84%9A%E6%9C%AC


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM