使用OAuth访问令牌的GitHub克隆

vmjh9lq9  于 2022-12-25  发布在  Git
关注(0)|答案(9)|浏览(234)

在一个脚本中,我尝试使用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文档。所以我想知道这是否仍然有效。

o7jaxewo

o7jaxewo1#

只需使用HTTPS地址进行克隆,并将密钥作为用户,因此:

git clone https://oauth-key-goes-here@github.com/username/repo.git
zy1mlcev

zy1mlcev2#

我原来是一个范围问题。我当然需要完整的repo范围,因为我试图克隆一个private存储库。
很遗憾Github没有更清晰的错误信息来处理这类事情,但是从安全Angular 来看,我理解为什么。
对于任何人试图找出什么是错误的,当尝试这样的东西,我会建议创建一个个人访问令牌与完全访问一切:
设置〉开发者设置〉个人访问令牌〉生成新令牌
这样,通过将令牌与对所有内容都具有访问权限的个人访问令牌进行比较,您可以轻松地测试它是否是范围问题。
谢谢任何仍然花时间读这篇文章的人。

krcsximq

krcsximq3#

只需使用HTTP克隆存储库,如下所示:

git clone https://github.com/myuser/myrepo.git

当系统提示输入用户名时,请填写您的用户名。
当提示输入密码时,请填写标记

piv4azn7

piv4azn74#

请试试这个。

git clone `https://oauth2:TOKEN@github.com/username/repo.git`

例如,git clone https://oauth2:ghp_...Gnm61dm4rh@github.com/gituser/testrepo.git

bbuxkriu

bbuxkriu5#

从这两个选择中选择适合你的方法

在您的终端

第一个月
...没有密码

在您的git客户端应用中

即源树、GitKraken和GitHub客户端。
输入您的repo_url(明显不带“$ git clone part”)
Username:your_token Password:
...没有密码

即在源树中,打开首选项,然后转到高级,输入主机名(即www.x.com)和用户名(即your_token)

👍

x9ybnkn6

x9ybnkn66#

转到https://github.com/settings/tokens并生成一个新令牌,记住启用对存储库的访问,之后,您可以执行以下操作来克隆存储库。

git clone https://<token>@github.com/owner/repo.git

注:如果是你的仓库,owner就是你的用户名,否则请保留仓库所有者的用户名(拥有repo的所有权限)。

brqmpdu1

brqmpdu17#

在.net core中,您可以在处理Azure DevOps Repo时以这种方式执行操作:

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);
        }
3z6pesqy

3z6pesqy8#

对我来说,上面的答案都不起作用。原来我在令牌上设置了一个月的有效期,所以我不得不使用下面的说明重新创建令牌:https://www.shanebart.com/clone-repo-using-token/

daupos2t

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 🙂)

相关问题