我编写了代码,通过libgit2sharp(v0.21.0.176)以编程方式将GitHub私有存储库克隆到本地存储库。
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()
的工作方式是否不同?
\
的存在,你可能需要在路径前加上@
来使用逐字字符串。 - PhilippecloneResult
包含什么? - nulltokencloneResult
从未被设置,因此其值保持为null。路径实际上是动态生成的,但我尝试使用静态路径@"{path}",结果仍然抛出相同的异常。 - BaltoStar