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

Другие вопросы по тегам