【问题标题】:GitLab + Composer + Private Repo + SSH onlyGitLab + Composer + Private Repo + 仅 SSH
【发布时间】:2020-10-13 20:21:03
【问题描述】:

所以我做了一个作曲家包,我有一个 GitLab 克隆 URL

git@gitlab.mycompany.hu:composer-packages/another-package.git

在我们的 GitLab 服务器上,我们启用并强制启用了 2FA,并且也禁用了 HTTPS 克隆,只允许使用 SSH。如何告诉 composer.json 中的作曲家如何克隆存储库?

我试过了:

repositories": [
    { "type":"gitlab", "url": "git@gitlab.mycompany.hu:composer-packages/another-package.git" }
  ],
.
.
.
"require": {
  ...
  "composer-packages/another-package": "1.0",
  ...
"config": {
  ...
  "gitlab-domains": ["gitlab.mycompany.hu"],
  "gitlab-token": {"gitlab.mycompany.hu": "ABCDEFGHIJKLMNOPQR"}

对于令牌,我尝试了生成的用户的访问令牌和为项目生成的部署令牌。他们都没有工作。我得到的只是:

[Composer\Downloader\TransportException]                                                                           
  Invalid credentials for 'https://gitlab.mycompany.hu/api/v4/projects/omposer-packages%2Fanother-package', aborting.

请帮帮我。

【问题讨论】:

  • 有什么理由不使用"type":"git"?它应该通过 ssh 克隆 repo,并且应该使用 ssh 密钥进行身份验证。
  • 如果我记得,该类型的身份验证不正确。现在没关系,该项目已关闭,我太忙无法重新打开它。 (゚¬゚)

标签: ssh composer-php gitlab repository


【解决方案1】:

在 composer repositories 部分设置 "type": "git" 允许您在启用 SSH 和 2FA 的情况下进行克隆。

根据this comment回答

【讨论】:

    【解决方案2】:

    没有解决办法。 (︶︹︺)

    只有当我们创建一个新用户并为它的登录禁用 2FA 并且我们使用它的访问令牌来克隆存储库时它才有效。由于这会违背公司政策,我们解散了整个想法,并将 composer 包集成到我们的主要项目中。

    【讨论】:

      【解决方案3】:

      我从 ~/.config/composer/auth.json 中删除了在那里注册的存储库的密钥,您从中提取了包。删除后,我运行 composer update 命令,重新输入它(就像第一次一样) - 在存储库中再次创建访问令牌并在 auth.json 中注册 - 一切都像以前一样工作

      【讨论】:

      • 目标是使用 SSH 密钥而不是访问令牌来克隆存储库。
      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      • 2013-07-18
      • 2019-01-25
      • 2011-10-30
      相关资源
      最近更新 更多