繁体   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