簡體   English   中英

dulwich - 從遠程 repo 身份驗證克隆

[英]dulwich - clone from remote repo authentication

我找不到有關此主題的任何資源。 我需要通過提供用戶名和密碼從私有存儲庫中克隆。 但是,當它們作為關鍵字 arguments 提供給“dulwich.get-client-from-path()”時,會出現“未知參數“用戶名””的錯誤。

這似乎是一件簡單的事情,但是我找不到合適的方法。

試試這個片段:

porcelain.clone("https://user:password@your_git_repo.git")

這也有效:

porcelain.clone("https://example.com/repo.git", username="user", password="password")

我迅速檢查了憑據是否存儲在本地:

  • 使用此答案中的usernamepassword語法時,用戶名和密碼似乎都沒有存儲在任何地方。
  • 使用harvin's answer中的方法時,用戶名存儲在本地(您可以在命令行上使用git remote -v進行檢查)。 密碼似乎沒有被存儲。
    • 這與在命令行上執行git clone https://user:password@example.com/repo.git的行為不同,后者存儲了用戶名和密碼。

我是怎么發現的

  1. 德威porcelain文檔根本沒有提到通過身份驗證進行克隆的可能性。
  2. Ceramic.clone 的porcelain.clone代碼確實需要**kwargs
    • 它們被傳遞給client.get_transport_and_path
    • 這會將它們傳遞給client.get_transport_and_path_from_url
    • 這會將它們傳遞給HttpGitClient.from_parsedurl 如果 URL 中存在用戶名和密碼,它們將被提取並存儲到kwargs字典中(這可能是 harvin 的答案起作用的原因)。
    • 然后kwargs字典在某個地方再次傳遞。 我沒有檢查那個位置,因為代碼知道kwargs中的usernamepassword密鑰這一事實足以證明我可以嘗試我在上面發布的代碼段,並且它有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM