gpt4 book ai didi

git - 如何通过 libgit2sharp 在本地克隆 GitHub 存储库?

转载 作者:行者123 更新时间:2023-12-05 02:22:08 26 4
gpt4 key购买 nike

我编写了代码,通过 libgit2sharp ( v0.21.0.176 ) 以编程方式将 GitHub 私有(private)存储库克隆到本地存储库

var cloneOptions = new CloneOptions { BranchName = "master", Checkout = true };
var cloneResult = Repository.Clone( @"https://github.com/my-organization/my-repo.git", @"c:\github\my-organization\my-repo" );

抛出异常:

{LibGit2Sharp.LibGit2SharpException: Request failed with status code: 401
at LibGit2Sharp.Core.Ensure.HandleError(Int32 result)
at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result)
at LibGit2Sharp.Core.Proxy.git_clone(String url, String workdir, GitCloneOptions& opts)
at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options)

cloneResult 值为 null(由于抛出异常而从未设置)

请注意,无论\my-repo\文件夹是否存在,都会引发相同的 401 异常。

我的函数调用语法是否正确?

从命令行执行,git clone 首先创建一个要克隆到的本地目录文件夹。

libgit2sharp Repository.Clone() 的工作方式不同吗?

最佳答案

401 是 HTTP 代码,表示您需要对服务器进行身份验证。 libgit2 中的代码路径并不总是将这种情况正确转换为 GIT_AUTH,但这就是它的意思。

GitHub(和其他服务)也可以在存储库不存在时返回此错误,作为一种避免泄露有关私有(private)存储库存在信息的方法。

您没有为 libgit2(sharp) 提供任何方式来询问您用户的凭据。您需要传入 CloneOptions,您将 CredentialsProvider 设置为授权用户的凭据。

关于git - 如何通过 libgit2sharp 在本地克隆 GitHub 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30814173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com