git - 如何在 LibGit2Sharp 中使用新的 CredentialsProvider?

标签 git github libgit2sharp

我通过以下方式使用 LibGit2Sharp.Credentials 类一段时间:

LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
       Username = TokenValue,
       Password = ""
};

var pushOptions = new PushOptions() { Credentials = credentials} ;

现在 LibGit2Sharp.PushOptions.Credentials 已过时,我必须使用 CredentialsProvider。

我想问你在这种情况下使用 CredentialsProvider 的正确方法是什么?

非常感谢!

最佳答案

>我想问一下在这种情况下使用 CredentialsProvider 的正确方法是什么?

这段代码应该符合您的需要。

var pushOptions = new PushOptions() { 
    CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials
    {
        Username = TokenValue,
        Password = ""
    }
}

这是由 PR #761介绍的 为了允许一些更具交互性的场景(例如,当要求用户提供其凭据作为克隆过程的一部分时)并为其他类型的凭据(例如 Ssh)准备路径。 p>

CredentialsProvider 是一个回调

  • 传入目标 url、用户名(如果在 url 中指定)和服务器接受的凭据类型
  • 期望返回一个将在身份验证期间使用的Credentials(基本类型)

可以在 CloneFixture.cs 中看到 CredentialsProviders 的一个例子。 测试套件。

关于git - 如何在 LibGit2Sharp 中使用新的 CredentialsProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977330/

相关文章:

git - 了解 git 子模块和 "freezing"它在特定的提交哈希或版本

windows - 更改 Git 用户名

linux - 当我使用协作 github 存储库时,crontab 无法识别 github 用户名

git - 如何找到具有特定父级的所有提交?

git - 如何使用 libgit2sharp 获取落后/领先的提交数量?

git - 如何在 cygwin 上构建和使用最新版本的 git?

git - 哪个是更智能的 git 协议(protocol),ssh 或 git(通过 ssh)或 https 协议(protocol)?

c# - 使用 libgit2sharp 克隆和推送

带有扩展消息/描述的 Git/GitHub 提交

css - Github 不读取网站中嵌入的字体