Только GitLab + Composer + Private Repo + SSH

Итак, я сделал пакет композитора, и у меня есть URL-адрес клонирования GitLab для него

[email protected]:composer-packages/another-package.git

На нашем сервере GitLab у нас включен и принудительно включен 2FA, а также отключено клонирование HTTPS, разрешен только SSH. Как я могу указать композитору в composer.json, как клонировать репозиторий?

Я пробовал:

repositories": [
    { "type":"gitlab", "url": "[email protected]: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, а ключи ssh должны использоваться для аутентификации.   —  person Bert    schedule 07.09.2020

Если я помню, аутентификация была неправильной с этим типом. Ничего страшного, проект закрыт, и я слишком занят, чтобы открывать его заново. (゚ ¬ ゚)   —  person Bert    schedule 07.09.2020

См. также:  Не удается найти репозиторий проекта на git-сервере для пользовательских хуков
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. Bert

    Мне помогло удаление из ~ / .config / composer / auth.json ключа для зарегистрированного там репозитория, из которого вы тянете пакет. После удаления запустил команду composer update, повторно ввел ее (как будто в первый раз) — токен доступа снова был создан в репозитории и зарегистрирован в auth.json — все работало как раньше

    Цель состоит в том, чтобы использовать ключи SSH, а не токены доступа, для клонирования репо. person Bert; 04.09.2020

  2. Bert

    Нет решения. (︶︹︺)

    Это работает, только если мы создадим нового пользователя и отключим 2FA для его входа в систему, и мы будем использовать его токен доступа для клонирования репозитория. Поскольку это противоречило бы политике нашей компании, мы полностью распустили идею и интегрировали пакет композитора в наш основной проект.

  3. Bert

    Установка "type": "git" в разделе репозиториев композитора позволяет выполнять клонирование с включенными SSH и 2FA.

    Ответ основан на этом комментарии

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: