Итак, я сделал пакет композитора, и у меня есть 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
Мне помогло удаление из ~ / .config / composer / auth.json ключа для зарегистрированного там репозитория, из которого вы тянете пакет. После удаления запустил команду composer update, повторно ввел ее (как будто в первый раз) — токен доступа снова был создан в репозитории и зарегистрирован в auth.json — все работало как раньше
Цель состоит в том, чтобы использовать ключи SSH, а не токены доступа, для клонирования репо. — person Bert; 04.09.2020
Нет решения. (︶︹︺)
Это работает, только если мы создадим нового пользователя и отключим 2FA для его входа в систему, и мы будем использовать его токен доступа для клонирования репозитория. Поскольку это противоречило бы политике нашей компании, мы полностью распустили идею и интегрировали пакет композитора в наш основной проект.
Установка
"type": "git"
в разделе репозиториев композитора позволяет выполнять клонирование с включенными SSH и 2FA.Ответ основан на этом комментарии