如何测试凭据是否有效?

How to test whether credentials are valid?

我在文档中找不到检查给定凭据是否可用于克隆给定存储库的规范方法。有一个 issue 表明一种方法可能是检查 git_cred_acquire_cb() 是否被多次调用。有人可以证实这一点或指出另一种方式吗?

这是推荐的方式。如果您的凭据回调被第二次调用,那么您提供的第一个凭据将不会被接受。此模式主要用于 UI 应用程序(弹出模态 username/password 对话框)。

您可以使用回调数据统计您被调用的次数。

我意识到这可能不完美,尤其是当您使用另一种语言绑定 libgit2 时。在堆上设置数据结构并管理其生命周期并不总是微不足道的。

可能 也可以只提供凭据并等待 GIT_EAUTH return 代码。理论上,各种传输机制无论如何都应该在几次认证失败后放弃。但是,我们在 0.27 版本中至少发现了一个会永远循环的错误。因此提出建议。