Golang при работе с внешними зависимостями по умолчанию работает по https
протколу. При работе с зависимостями расположенными в частных репозиториях может использоваться http
протокол.
Частные репозитории (private repository) это репозитории развернутые в рамках местной компании. Поэтому с настройками по умолчанию при работе с частными репозиториями возникает ошибка ниже:
go: gitlab.space.team/dev/spacevm-go@v0.0.0-20230427205557-c59c016940d9: invalid version: git ls-remote -q origin in
/home/dp/Code/golang/go/pkg/mod/cache/vcs/9d6ac92dae2cb8c34a30234f55abdae32ec5751ebe1104a5d00259017d7295a9: exit status 128:
fatal: could not read Username for 'http://gitlab.space.team':
terminal prompts disabled Confirm the import path was entered correctly.
If this is a private repository, see https://golang.org/doc/faq#git_https for additional information.
Что бы заставить его использовать http
при работе частными репозиториями неободимо прописать авторизацию через файл $HOME/.netrc
machine gitlab.space.team login USERNAME password PASSWORD
При возникновении следующей ошибки при импорте модуля из частного репозитория:
go: terraform-provider-spacevm imports
gitlab.space.team/dev/spacevm-go/api: gitlab.space.team/dev/spacevm-go@v0.0.0-20230302093536-f65e5b53e820: parsing go.mod:
module declares its path as: spacevm-go
but was required as: gitlab.space.team/dev/spacevm-go
необходимо в самописном модуле который импортируем и который расположен в частном репозитории прописать правильное именование.
Вместо module spacevm-go
необходимо писать полный идентификатор частного модуля module gitlab.space.team/dev/spacevm-go
.
gitlab.space.team/dev/spacevm-go
— это глобально уникальный идентификатор модуля и одновременно URL, по которому он должен быть доступен (за минусом префикса http:// или https://).