GitLab + Composer + Private Repo +仅SSH

时间:2019-05-08 12:00:48

标签: ssh composer-php gitlab repository

所以我制作了一个作曲家程序包,并且有一个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.

请帮助我。

3 个答案:

答案 0 :(得分:0)

无解。 (︶︹︺)

仅当我们创建一个新用户并禁用2FA的登录名并且使用其访问令牌来克隆存储库时,它才有效。由于这会违背公司的政治原则,因此我们解散了整个构想,并将作曲家软件包集成到了我们的主要项目中。

答案 1 :(得分:0)

在composer信息库部分设置"type": "git"可使您在启用SSH和2FA的情况下进行克隆。

基于this comment

的答案

答案 2 :(得分:-1)

从〜/ .config / composer / auth.json中删除了我在其中注册的存储库的密钥,这是我的帮助。删除后,我运行composer update命令,再次输入它(好像是第一次)-访问令牌在存储库中再次创建并注册在auth.json中-一切都像以前一样