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

Rap*_*ael 4 git authentication gitlab

根据文档,应该可以使用项目访问令牌访问 GitLab 存储库:

用户名设置为project_{project_id}_bot,如project_123_bot。

别介意那是谎言——project_4194_bot1在我的例子中调用的是实际用户;显然,他们为后续令牌增加了一个数字。

无论哪种方式——我试过有尾随和没有尾随1——我希望

git clone "https://project_4194_bot1:$PROJECT_TOKEN@my.gitlab.host/my-group/my-project.git"
Run Code Online (Sandbox Code Playgroud)

成功,与my.username:$PERSONAL_TOKEN(完美运作)相同。但是,我得到

remote: HTTP Basic: Access denied
fatal: Authentication failed for '<snip>'
Run Code Online (Sandbox Code Playgroud)

这里可能发生了什么?如何使用项目访问令牌访问 GitLab 存储库?


好像我们不会走那么远,但是 FWIW,令牌似乎有足够的权限:

在此处输入图片说明

Raf*_*-WO 11

似乎使用项目名称作为用户名有效。在你的情况下替换project_4194_bot1my-project应该工作:

git clone "https://my-project:$PROJECT_TOKEN@my.gitlab.host/my-group/my-project.git"
Run Code Online (Sandbox Code Playgroud)

  • 正如所写,这个答案具有误导性。来自 [GitLab 文档](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html):“使用 HTTP 基本身份验证时,使用任何非空白值作为用户名,并且项目访问令牌作为密码”。 (6认同)

Gav*_*rti 9

来自GitLab 文档

对于 Git,当使用 HTTP 基本身份验证时,请使用:

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

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

git clone "https://anything:$PROJECT_TOKEN@my.gitlab.host/my-group/my-project.git"
Run Code Online (Sandbox Code Playgroud)