首次设置凭据(libgit2)

时间:2017-05-24 11:18:49

标签: c++ libgit2

所以我使用一些libgit2函数连接到遥控器并执行git push。我想推送到私有存储库,所以我必须设置凭据。

但是,例如,当我通过git命令使用私有存储库并且我想第一次连接到此存储库时,我输入凭据......但之后,如果我想推送第二次,第三次或者,当我重新启动计算机时,我不必再次写入凭据。在我看来,有一些地方“知道存储库”与他们的凭据一起存储。

我的问题是,有没有办法用libgit2做到这一点? 我的意思是,有没有办法在不设置凭据的情况下推送到“已知”私有远程存储库? “已知”是指我已经使用的存储库,因此我已经设置了凭据

我想使用许多不同的存储库,每个存储库都有自己的凭据,因此我不希望每次推送都手动设置凭据。

当我在没有设置凭据的情况下执行推送(按下“已知”仓库)时,会显示此错误消息

请求失败,状态代码为:401

有没有办法,每次推送时如何不设置凭证?

1 个答案:

答案 0 :(得分:1)

命令行git有一组凭据帮助程序,可以使用本机平台API安全地存储凭据。有证书助手在Mac上使用Keychain,在Windows上使用Windows Credential Manager,在Linux上使用gnome-keyring和libsecret。有关详细信息,请参阅the chapter on credential helpers in the git book

Libgit2没有用于安全存储密码的类似抽象。也许它应该。相反,您的应用程序可以调整不同的本机API来存储密码,然后根据用户名和主机名参数将它们提供给libgit2凭证回调。