GitLab CI_JOB_TOKEN 可以用于在 GitLab CI 管道期间克隆存储库吗?

问题描述 投票:0回答:1

项目 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 作为替代身份验证方法。

gitlab-ci basic-authentication gitlab-ce
1个回答
0
投票
有 3 个访问令牌用于访问另一个存储库,并且所有工作都在管道中进行:

    个人代币
  • 项目访问令牌
  • $CI_JOB_TOKEN
除非您正在做其他事情,否则不需要

extraheader

。另外,一个版本的curl (8.2) 存在一个“已知问题”会导致此问题。

© www.soinside.com 2019 - 2024. All rights reserved.