Установка npm завершается неудачно из-за закрытого хранилища git и соединений ssh ​​и https - PullRequest
0 голосов
/ 03 января 2019

У меня есть следующий файл package.json, и я пытаюсь запустить npm install, но он не работает.

    "test": "git+https://<TOKEN>@github.build.test.com/test.git",

У меня есть ключ ssh, соответствующий github. Однако даже если я напишу следующее, он всегда работает с https.

    "test": "git+ssh://git@github.build.test.com/test.git",

В обоих случаях я вижу следующее сообщение об ошибке

npm ERR! Error while executing:
npm ERR! C:\Program Files\Git\cmd\git.EXE ls-remote -h -t https://github.build.test.com/test.git
npm ERR!
npm ERR! remote: Password authentication is not available for Git operations.
npm ERR! remote: You must use a personal access token or SSH key.
npm ERR! remote: See https://github.build.test.com/settings/tokens or https://github.build.test.com/settings/ssh
npm ERR! fatal: unable to access 'https://github.build.test.com/test.git/': The requested URL returned error: 403
npm ERR!
npm ERR! exited with error code: 128

Если я запускаю указанную выше команду отдельно, она работает.

git ls-remote -h -t https://<TOKEN>@github.build.test.com/test.git
git ls-remote -h -t ssh://git@github.build.test.com/test.git

Как я могу это исправить?

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Если вы собираетесь использовать «git + ssh: //git@github.build.test.com/test.git», вы сможете клонировать этот репозиторий без передачи учетных данных. Простой git clone git+ssh://git@github.build.test.com/test.git не должен запрашивать пароль или имя пользователя.

Возможно, вам нужно настроить ваш открытый / закрытый ключи git. Ваш локально используемый ключ для клонирования должен быть добавлен в конфигурацию репозитория. Например для github можно настроить его на https://github.com/settings/keys

0 голосов
/ 03 января 2019

Сначала, если у вас есть какая-либо директива url.<base>.insteadOf в вашей конфигурации git:

cd /path/to/repo
git config -l|grep -i insteadOf

А если нет, установите один из своих:

git config url."ssh://git@github.build.test.com".insteadOf  https://github.build.test.com

Посмотрите, использует ли он https.

...