假設我從一個git主存儲庫服務器開始。Git推/拉 - 按子域限制
稱之爲git.prod.example.com
。
我希望工作在dev.example.com
的開發人員能夠push
到這個主服務器。
但是,test.example.com
,training.example.com
或prod.example.com
中的主機只能執行pull
請求。
也就是說,他們可以從主存儲庫中獲取代碼,但他們不能在主存儲庫中更改代碼。
我能做到這一點?如果是這樣,怎麼樣?
每個人都必須擁有git.prod.example.com
的賬號,對不對?
(或在子域,至少。)
是混帳足夠明亮,分析push
和pull
請求的源位置,並從數額是多少,基於子域,黑名單拒絕代碼修改?
如果這在某個地方被很好地記錄下來,那麼鏈接指針會很棒。到目前爲止,我的google-fu已經失敗了。
如果我能弄清楚git是否可以將有關SSL或HTTP連接的任何信息傳遞到'.git/hooks'腳本中,那麼這將起作用。 '如果[$ SOURCE_DOMAIN ==「test.example.com」];然後退出1; fi'會很容易。我只是沒有找到如何將'$ SOURCE_DOMAIN'傳遞給鉤子腳本。 – dafydd
我可能可以通過'$ SSH_CLIENT'或'$ SSH_CONNECTION'環境變量來做些什麼來拒絕來自所選子網的推送。我會看看我是否可以對此進行試驗。但是,http傳輸呢?我可以拒絕來自選定子網的POST請求,前提是我知道推送是通過來自指定客戶端的POST請求發出的。 – dafydd
你不能直接這樣做,因爲git沒有關於倉庫的信息。你可以在你的git鉤子中找到你的倉庫的'$ PWD'文件夾並從那裏找出 – CodeWizard