【问题标题】:Gitlab pipeline error - Could not authenticate against gitlab.comGitlab 管道错误 - 无法针对 gitlab.com 进行身份验证
【发布时间】:2022-07-08 22:24:26
【问题描述】:

首先,如果此处的信息非常模糊,我深表歉意,但我不确定要添加什么或从哪里开始查找。所以我很乐意添加任何其他可能有帮助的内容。

在我的工作中,我们使用 Gitlab 进行源代码控制和 CI/CD。一切都很好,直到几天前,几个项目在尝试访问包时突然开始显示错误。

当 gitlab 上运行的管道使用 composer 从 gitlab repo 下载包时,会发生错误。但是,我可以毫无问题地从我的计算机中提取存储库和软件包。

现在这些包仓库也托管在同一个 gitlab 帐户上。所有这一切都是由一位比我更了解开发运维的前员工设置的。

收到此错误

Failed to download project/package-name from dist: Could not authenticate against gitlab.com

但是,来自同一个 repo 的另一个包可以正常下载。而且由于我们没有进行任何更改,所以我现在无法理解导致此错误的原因。

提取 repos 的项目使用 auth.json 文件中设置的 'gitlab.com' 的 'gitlab-token',该文件尚未更改。

我知道这些问题在这里很难调试,但希望有人可以帮助我。谢谢

【问题讨论】:

  • 您是如何下载项目的?你的意思是git clone …?之前的员工是否也打包了所有者/维护者并设置了令牌?如果是,他的用户是否已从项目中删除?这可能会导致他的个人访问令牌无效。一般来说,作为一个团队,您应该使用 组令牌(参见此处:docs.gitlab.com/ee/user/group/settings/group_access_tokens.html)。您也可以始终使用 https 并使用您的用户名/密码组合。另一种解决方案是在一台机器上生成一个 SSH 密钥并通过 SSH 使用它。
  • 我会检查该用户的帐户最近是否被删除。我可以访问 repo 并将其推送到,因为我使用 SSH 密钥。感谢有关组访问令牌的提示,我可以设置它。但是我设置好之后,这个token会加到哪里呢?
  • 链接中都有说明。您将使用 https 与空白用户名和令牌作为密码。
  • 谢谢,有帮助。它导致我向上推我的 auth.json 文件,直到现在 gitignore 都忽略了该文件 - 这修复了管道错误。但我认为在 repo 中显示 auth.json(和 gitlab.com 令牌)存在安全问题,因此它被忽略了。在不推文件的情况下,我可以将此令牌添加到我的仓库中的某个位置吗?因为到目前为止它一定是这样的吗?

标签: gitlab


【解决方案1】:

在运行 composer install 之前在您的管道中按原样添加此行

composer config gitlab-oauth.gitlab.com "${CI_JOB_TOKEN}"

确保:

  • 你不会用任何东西替换 ${CI_JOB_TOKEN} - 这是 gitlab 预定义的变量
  • 在命令中您将使用gitlab-oauth 而不是gitlab-token。后者在本地工作,但不知何故在 gitlab 管道中不起作用。我在 gitlab 和 composer doc 中都没有找到文档原因。

以上解决了我的问题,从您的描述来看,在根本原因方面似乎非常相似。

【讨论】:

    猜你喜欢
    • 2011-08-04
    • 2013-02-15
    • 1970-01-01
    • 2020-07-07
    • 2013-05-24
    • 2022-01-10
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多