【发布时间】:2015-06-13 01:11:00
【问题描述】:
我编写了代码以通过 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 首先创建一个本地 dir 文件夹以克隆到。
libgit2sharp Repository.Clone() 的工作方式是否不同?
【问题讨论】:
-
mods :不应该拒绝投票才能留下评论解释原因吗?我看不出我的问题有什么问题
-
由于 '\',也许您应该使用逐字字符串作为路径,并在其前面加上
@ -
您的异常堆栈跟踪似乎与您的代码示例不匹配。您使用的是哪个版本的 LibGit2Sharp?
cloneResult包含什么? -
很奇怪,但我最初发布的堆栈跟踪不正确。我已经更新了正确的堆栈跟踪和 libgit2sharp 版本 v0.21.0.176。因为抛出异常,
cloneResult永远不会被设置,所以它的值保持为空。路径实际上是动态生成的,但我尝试使用 static-paths @"{path}" 并引发了相同的异常。
标签: git github git-clone libgit2sharp