Go Mod Частный Репо
Так что у меня есть частное репо, которое импортирует мой main.go. Я получаю эту ошибку, когда я делаю сборку Go:
не могу найти модуль для пути
Нужно ли делать что-то особенное для частного репо? Я гуглил и не могу найти никакой хорошей информации. Работает нормально с dep.
2 ответа
Сделай это
git config --global --add url."git@your-repo.com:".insteadOf "https://your-repo.com/"
export GOPRIVATE='your-repo.com'
Убедитесь, что ваш клон git через ssh работает.
(Ответ дублируется из этого SO вопроса)
Я написал решение для этого на Medium: Go модули с частными репозиториями Git.
То, как мы справляемся с этим, в основном совпадает с ответом Алекса Плитау, и в блоге более подробно рассматриваются примеры того, как настроить свой git config с токенами из GitHub/GitLab/BitBucket. Это также входит в рабочий пример Dockerfile для использования модулей с частными репозиториями.
Соответствующий бит для GitLab:
git config --global \
url."https://oauth2:${personal_access_token}@privategitlab.com".insteadOf \
"https://privategitlab.com"
#or
git config --global \
url."https://${user}:${personal_access_token}@privategitlab.com".insteadOf \
"https://privategitlab.com"
Я надеюсь, что это полезно.
Вы должны использовать SSH-ключ для получения вашего хранилища, проверьте, находится ли ваш SSH-ключ также в системной цепочке для ключей:
ssh-add -K ~/.ssh/id_rsa
Учитывая, что такое частное репо часто находится в активной разработке, я лично просто клонирую его в "правильное" место в моем $GOPATH
и используйте управление исходным кодом (например, git), как любой другой проект. Добавление ключа SSH, как в ответе Родриго, - это замечательно, но если вы все равно активно разрабатываете частное репо, дополнительный шаг клонирования его в нужный каталог ни в коем случае не является трудным шагом по сравнению с возможностью go get
Это.
Так, например, для частного репо, размещенного на Github, я бы cd
в $GOHOME/src/github.com/git-username-for-repo
затем git clone the-repo