使用项目访问令牌访问GitLab存储库

ogsagwnx  于 2023-09-29  发布在  Git
关注(0)|答案(4)|浏览(214)

根据文档,应该可以使用project access tokens访问GitLab repos:
用户名设置为project_{project_id}_bot,例如project_123_bot。
不要介意这是一个谎言--在我的例子中,实际用户名为project_4194_bot1;显然,它们为随后的令牌增加一个数字。
无论哪种方式--我 * 已经 * 尝试了使用和不使用尾随1--我希望

git clone "https://project_4194_bot1:[email protected]/my-group/my-project.git"

要成功,与my.username:$PERSONAL_TOKEN相同(它工作得很好)。但是我得到

remote: HTTP Basic: Access denied
fatal: Authentication failed for '<snip>'

这到底是怎么回事如何使用项目访问令牌访问GitLab存储库?
这并不是说我们会走那么远,但是FWIW,令牌似乎有足够的权限:

vatpfxk5

vatpfxk51#

使用项目名称作为用户名似乎是可行的。在您的情况下,将project_4194_bot1替换为my-project应该可以工作:

git clone "https://my-project:[email protected]/my-group/my-project.git"

**编辑:**实际上可以使用任何非空值作为用户名(参见docs),正如其他人正确指出的那样。

wtlkbnrh

wtlkbnrh2#

关于GitLab documentation
在Git中,当使用HTTP Basic Authentication时,用途:

  • 任何非空值作为用户名。
  • 项目访问令牌作为密码。

在以前的GitLab版本中,必须使用project_4194_bot1作为用户名。但是,当前版本允许您使用任何您想要的用户名:

git clone "https://anything:[email protected]/my-group/my-project.git"
wydwbb8l

wydwbb8l3#

我发现,根据git版本的不同,如果token是项目访问令牌,'user'可以为空或为随机字符串。

git clone "https://<$USER>:[email protected]/my-group/my-project.git"
odopli94

odopli944#

我遇到了类似的问题:我不知道如何从客户端访问我的仓库,而不给它我的密码。对我有效的解决方案是使用以下格式的URL:

https://<token name>:<token>@gitlab.address/group/project.git

请注意,任何其他格式都不起作用。关于细节,我使用argocd并尝试持续部署私有存储库的文件。希望这对你有帮助!

相关问题