В моем package.json
у меня есть зависимость от другого git-репозитория:
"my-dependeny":"git+https://somehost.com/my-dependency.git#<commit-hash>"
После запуска npm install
это прекрасно работает при разработке, потому что git использует мои личные сохраненные учетные данные.
Но выполнить npm install
в jenkins-pipline не удастся, потому что нет сохраненных учетных данных.Поэтому я сначала попытался сгенерировать токен развертывания в gitlab и отредактировать package.json
:
"my-dependeny":"git+https://<deploy-token>:<password>@somehost.com/my-dependency.git#<commit-hash>"
Теперь он будет работать на jenkins!Но проблема этого подхода заключается в том, что Windows
автоматически обновляет учетные данные для хоста (somehost.com
) в Credentials Manager
:
Таким образом, когда любой разработчик запускает npm install
и впоследствии пытается получить доступ к другому проекту на том же хосте, он потерпит неудачу, потому что он будет использовать deploy-token
для аутентификации.
Конечно, вы можете добавить новыйпользователь gitlab, который имеет доступ ко всем соответствующим проектам.Тогда вы могли бы сохранить этого пользователя на jenkins, но это не кажется оптимальным или даже хорошим решением.
Может быть, есть и способ остановить Credential Manager
от обновления учетных данных git.Но это также звучит не очень хорошо, потому что каждый разработчик должен был бы предотвратить это, что не очень интуитивно понятно.
Мой вопрос
Есть ли хороший способ получить доступ к gpm-зависимостям npm от jenkins, не требуя дополнительных действий, которые должен выполнять каждый разработчик?