我使用 LibGit2Sharp 库来克隆/推送经过身份验证的用户的 GitHub 存储库,但 LibGit2Sharp 不接受访问令牌来授权用户。
LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
Username = "username",
Password = "password"
};
所以我有一个来自 Octokit.NET 的访问令牌,我想使用这个令牌通过 LibGit2Sharp 推送到授权用户存储库。
有没有办法做到这一点?如果我知道的话,Octokit.NET 此时无法执行推送请求。
更新
正如 Carlos Martín Nieto 和 Ivan Zuzak 建议的那样,我修改了代码:
LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
Username = "the-access-token",
Password = string.Empty
};
在我使用我的推送逻辑之后:
var pushOptions = new PushOptions() { Credentials = credentials};
Remote remote = repo.Network.Remotes["origin"];
LibGit2Sharp.Signature author = new LibGit2Sharp.Signature("name", "email", DateTime.Now);
repo.Network.Push(remote,"HEAD",@"refs/heads/master",pushOptions, author, null);
此逻辑适用于硬编码的用户名和密码,但现在我在最后一行出现异常,显示“LibGit2Sharp.LibGit2SharpException: Request failed with status code: 403”
我在实现中遗漏了一些东西,或者我在 Push() 方法中犯了一个错误?
非常感谢!