2017-04-21 150 views
2

我應該以編程方式捕獲git客戶端消息,以瞭解發生了哪種類型的錯誤(auth失敗,需要auth等)。git消息是否標準?

例如:

remote: Invalid username or password. 
If you log in via a third party service you must ensure you have an account password 
set in your account profile. 
fatal: Authentication failed for 'https://username:[email protected]' 

這是一個標準的信息(即不通過git的客戶端版本依賴),所以我能以理解,驗證失敗發生解析呢?

在此先感謝

回答

2

Git的消息做出改變因版本。而且它們可以根據存儲庫的本地設置以及遠程原點在錯誤情況下設計輸出的響應進行更改。一些Git服務器總是使用相同的消息進行響應,而不管錯誤是什麼 - 無論身份驗證失敗還是您無權訪問存儲庫。例如,GitHub的響應與BitBucket的不同。

捕獲這些消息的要求是什麼?你最終的目標是什麼?您是否嘗試記錄輸出並將其引起管理員的注意?

+0

嗨,亞當,我正在編寫一個存儲庫git管理web應用程序,它允許用戶通過js git客戶端包裝器與git發送克隆/推/拉進行交互。當用戶發送具有錯誤憑證的git clone命令時,我應該捕獲此信息以通知它。我無法發送完整的git錯誤響應,因爲它在gui上顯示了錯誤的密碼(信息泄露),所以我想要一個錯誤代碼,但這不可行,因爲我無法從git客戶端獲取此信息,所以我試圖獲取和清理git消息,但如果它們發生變化,我不能使用這種方法。 – Giper

+0

嗯,你是對的,我只是嘗試使用gitlab,並接收不同的錯誤消息,對於同一個錯誤的身份驗證請求...所以我應該知道每種可能的消息格式對於特定類型的錯誤,這不是一個好方法...我必須發送一個通用的git錯誤消息給用戶,或者我必須發送git客戶端消息時披露了錯誤的證書......(也許我也可以使用第二種方法,因爲它是一個本地使用的應用程序,但是我不知道它可能是一個糟糕的設計選擇) – Giper

+0

是的,這聽起來像一個可怕的設計選擇。特別是發回憑證 - 這是一個很大的安全風險。 – TinkerTenorSoftwareGuy