2016-03-03 255 views
0

管理一組跨多個存儲庫服務器端git的鉤因此,這裏的要求:使用廚師

  1. 使用廚師
  2. 安裝所有/一些掛鉤到一個啓用/禁用服務器端掛鉤,或更多資料庫

我在github中發現了各種hook管理器,但它們都有侷限性,或者沒有與廚師集成。或者只是客戶端。這裏有一些鉤管理者我發現:

  1. https://github.com/brigade/overcommit
  2. https://github.com/MatthieuBizien/git-hook-manager

或有用於廚師git的鉤子,如:

  • https://github.com/mattpep/santoku
  • 所以使用廚師,如果我可以設置一本食譜,這depl在創建鏈接和更改權限/所有權時跨越git repos創建oys文件,這也可以做到這一點。

    GitLab社區版(CE)被用於遠程倉庫

    +0

    你使用的是什麼樣的Git服務器?你期待這個與GitHub一起工作嗎? – coderanger

    +0

    我應該說。它的GitLab社區版,也更新了正文 – kamal

    +0

    它是你自己的GitLab服務器還是gitlab.org? – coderanger

    回答

    1

    管理鉤子腳本是非常簡單,只是寫或鏈接腳本到服務器端的每個git倉庫。 http://doc.gitlab.com/ce/hooks/custom_hooks.html顯示在哪裏可以找到GitLab服務器上的回購站,然後使用templatelink資源來添加/刪除每個回購站上的掛鉤。可能最終會看起來像這樣:

    Dir["/var/opt/gitlab/git-data/repositories/*/*.git"].each do |repo_path| 
        directory File.join(repo_path, "custom_hooks") do 
        owner "gitlab" # Maybe? Check what the existing permissions look like. 
        mode "755" 
        end 
    
        template File.join(repo_path, "custom_hooks", "pre-receive") do 
        source "pre-receive.erb" 
        owner "gitlab" # Like above. 
        mode "755" 
        end 
    end