在项目 A 的 CI 管道中,我尝试使用
CI_JOB_TOKEN
在我们的 GitLab 实例(自托管)上克隆另一个存储库。我已经成功地使用它来访问 Git 子模块等。
但是当尝试
git clone https://gitlab-ci-token:[email protected]/group/project-that-throws-error.git
时,我收到以下错误:
Cloning into 'project-that-throws-error'...
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https://my.gitlab.instance.com/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied
fatal: Authentication failed for 'https://my.gitlab.instance.com/group/project-that-throws-error.git'
我还在 gitlab-ci.yml
文件中设置了
Basic Authentication,如下所示:
$token = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("gitlab-ci-token:$CI_JOB_TOKEN"))
git config http.https://my.gitlab.instance.com/group/project-that-throws-error.extraheader "Authorization: Basic $token"
在 Web UI 中,对于引发错误的项目,我通过将其输入到设置 -> CI/CD -> 令牌访问 -> 允许来自以下项目的 CI 作业令牌来允许我的 项目 A CI 令牌访问访问此项目。
是否可以通过这种方式使用GitLab CI Token?我如何才能进行身份验证?我
无法使用 SSH 作为替代身份验证方法。