2013-04-24 51 views
2

設置:Git提交不使用轉發的ssh代理?

我們有幾個用戶可以訪問Github回購。 這些用戶都具有在各種服務器上的部署權限。 服務器無法訪問Github repo - 它們使用ssh-agent轉發來獲取用戶的憑據。 從Github傳輸數據到服務器時,一切都按預期工作。

對於問責制,部署將一些數據提交給回購。這些都是腳本化的,並且運行在服務器端,無需用戶干預。

問題:

Git修訂設定的提交者的姓名和電子郵件到任何設置服務器(默認爲服務器的用戶名,如果沒有明確設定)上。有沒有辦法強制Git(作爲發送者)或Github(作爲接收者)將提交與轉發的用戶憑證相關聯?

+0

試試'ssh -T git @ github.com'它會告訴你哪個github用戶被使用。儘管我無法使用正確的用戶來轉發自己。 – 2013-08-15 20:57:58

回答

0

你可以嘗試,並有一個鉤子在服務器上,觸發接收時(如,例如,該GitHubHook: a GitHub Post-Receive Deployment Hook),這將:

  • 修改本地.git/config文件
  • 添加user.name和user.email在上述配置文件

這將下一個推從GitHub到服務器,否則,錯誤的credentia之前設定的提交完成的展開時我會用。

如果前面的點是一個問題,那麼你就可以提高通過:

  • 存儲在別處這些憑據,在部署的順序,
  • ,並確保部署的提交與一個git commit --author='AUserName <[email protected]>完成,根據記錄的順序,從單獨的文件中提取名稱和電子郵件。

在最後一種情況下,沒有必要修改本地配置:你用正確的參數構建git commit命令,而不是依賴於本地配置文件的內容。