嘗試使用git,我爲自己託管的存儲庫設置了Gitlab,它看起來很棒。Gitlab/Gitolite可以執行正確的用戶名/電子郵件
搞砸我的一件事是,任何人都可以提交提交(即:欺騙提交)。
即:我有一個公共密鑰訪問在Gitlab我的用戶設置
- 用戶1
- 用戶2
現在只有這些用戶可能會推 - 用自己的私人SSH密鑰 - 但似乎有沒有什麼東西停止用戶2調整他們的gitconfig提交的名字用戶1並推動?
在gitlab歷史和混帳-show顯示提交者爲任何用戶1的gitconfig文本了。我希望Gitlab將與推送ssh密鑰關聯的用戶名加入歷史記錄中,以便我知道其ssh密鑰用於推送。
該場景是回購將在團隊環境中使用,它似乎是謹慎的,不允許欺騙提交。
我已經做了一些閱讀和理解,通常人們可能會改變工作流程以擁有一個幸運的存儲庫,並且只有可信任的提交者可以推動 - 但在學習git的階段,我希望保持更集中/ SVN類型的工作流程。
這可能使用鉤子嗎?
有一個similar question回答gitosis,但即使這似乎只執行提交者是從一系列的用戶不會阻止User1欺騙爲User2 - 據我所知。
PS:也許我問的是錯誤的問題 - 有沒有辦法在gitlab中發現哪個ssh密鑰(因此是真正的用戶)被用來將代碼推入回購?它不像我所能找到的那樣。
我想這和它非常接近的作品,但我得到$ GL_USER一個奇怪的值。該鉤子運行但錯誤「_remote:沒有發現與firstname_lastname_gmail_com_1345598530作爲提交者名稱_」。我不知道最後一串數字來自哪裏 - 一些gitlab內部的東西? Gitlab似乎不支持[他們的網頁鉤子](https://github.com/gitlabhq/gitlabhq/issues/476)以外的任何東西,所以這可能對Gitlab不起作用? – fiat
後一些更挖掘,_firstname_lastname_gmail_com_1345598530_的$ GL_USER值是「鍵」表中存儲所述SSH用戶鍵gitlab數據庫中的標識符列。它似乎是自動生成的,不能從UI設置。 – fiat
@fiat我確認:'GL_USER'設置了公鑰的名字,由Gitlab這樣命名,並由gitolite註冊。 – VonC