在脚本中我试图用oauth令牌克隆Github存储库。
根据本教程:
https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth
我应该可以像这样建立一个命令:
git clone https://<token>@github.com/owner/repo.git
如果我使用适当的访问令牌手动尝试此操作,它仍会询问我的密码。
如果我在命令行上尝试,我只会收到repository not found
错误。
该文章来自2012年,我找不到任何API文档。所以我想知道这是否还行。
答案 0 :(得分:36)
我原来是一个范围问题。我当然需要完整的repo
范围,因为我试图克隆一个private
存储库。
遗憾的是,Github没有为这类事情提供更清晰的错误消息,但安全方面我理解为什么。
对于试图在尝试这样的事情时弄清楚什么是错误的人,我建议创建一个可以完全访问所有内容的个人访问令牌:
设置&gt;开发人员设置&gt;个人访问令牌&gt;生成新令牌
通过这种方式,您可以通过将令牌与对所有内容具有访问权限的个人访问令牌进行比较,轻松测试是否是范围问题。
感谢所有仍然花时间阅读此内容的人。
答案 1 :(得分:11)
只需使用HTTPS地址以用户身份使用key进行克隆,那么:
https://oauth-key-goes-here@github.com/username/repo.git
答案 2 :(得分:10)
只需使用HTTP克隆存储库,如下所示:
git clone https://github.com/myuser/myrepo.git
提示输入用户名时,请填写您的用户名。
提示输入密码时,请填写令牌。
在GitLab中工作,尚未在GitHub上尝试过。
答案 3 :(得分:2)
去https://github.com/settings/tokens生成一个新的token,记得开启repo的访问权限,之后可以通过以下操作来克隆repo。
git clone https://<token>@github.com/owner/repo.git
答案 4 :(得分:1)
从这两个选择中为您做任何有用的事情
在您的终端机中
$ git clone your_repo_url
Username:your_token
Password:
...没有密码
在您的git客户端应用中
即Sourcetree,GitKraken和GitHub客户端。
输入您的repo_url(很明显,没有'$ git clone part')
Username:your_token
Password:
...没有密码
答案 5 :(得分:0)
在.net核心中,当您处理Azure DevOps存储库时,可以通过这种方式进行操作:
public void CloneRepository()
{
var _gitURL = "URLofGitRemoteRepository";
var _userName = "PersonalAccessToken";
var _pswd = ""; //Keep it blank
var co = new CloneOptions();
co.CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials { Username = _userName, Password = _pswd };
Repository.Clone(_gitURL, filePath, co);
}