在一个脚本中,我尝试使用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文档。所以我想知道这是否仍然有效。
9条答案
按热度按时间o7jaxewo1#
只需使用HTTPS地址进行克隆,并将密钥作为用户,因此:
zy1mlcev2#
我原来是一个范围问题。我当然需要完整的
repo
范围,因为我试图克隆一个private
存储库。很遗憾Github没有更清晰的错误信息来处理这类事情,但是从安全Angular 来看,我理解为什么。
对于任何人试图找出什么是错误的,当尝试这样的东西,我会建议创建一个个人访问令牌与完全访问一切:
设置〉开发者设置〉个人访问令牌〉生成新令牌
这样,通过将令牌与对所有内容都具有访问权限的个人访问令牌进行比较,您可以轻松地测试它是否是范围问题。
谢谢任何仍然花时间读这篇文章的人。
krcsximq3#
只需使用HTTP克隆存储库,如下所示:
当系统提示输入用户名时,请填写您的用户名。
当提示输入密码时,请填写标记。
piv4azn74#
请试试这个。
例如,
git clone https://oauth2:ghp_...Gnm61dm4rh@github.com/gituser/testrepo.git
bbuxkriu5#
从这两个选择中选择适合你的方法
在您的终端
第一个月
...没有密码
在您的git客户端应用中
即源树、GitKraken和GitHub客户端。
输入您的repo_url(明显不带“$ git clone part”)
Username:your_token Password:
...没有密码
或即在源树中,打开首选项,然后转到高级,输入主机名(即www.x.com)和用户名(即your_token)
👍
x9ybnkn66#
转到https://github.com/settings/tokens并生成一个新令牌,记住启用对存储库的访问,之后,您可以执行以下操作来克隆存储库。
注:如果是你的仓库,owner就是你的用户名,否则请保留仓库所有者的用户名(拥有repo的所有权限)。
brqmpdu17#
在.net core中,您可以在处理Azure DevOps Repo时以这种方式执行操作:
3z6pesqy8#
对我来说,上面的答案都不起作用。原来我在令牌上设置了一个月的有效期,所以我不得不使用下面的说明重新创建令牌:https://www.shanebart.com/clone-repo-using-token/
daupos2t9#
对于那些仍然有"使用只读FG令牌克隆私有存储库"问题的用户:"remote:未授予对存储库的写入权限。"
错误信息有点误导。在我的例子中,问题出在配置上:
1.创建只读令牌(内容:只读)
1.确保正确设置了资源所有者。
1.对于组织,您必须完成"个人访问令牌入职"。
1.使用https://oauth2:$TOKEN@github.com/myuser/myrepo.git克隆存储库(注意用户名,如其他人建议的,它是
oauth2
)With all of the above, I managed to clone a private repository with a readonly token (and no, there was no write access 🙂)