Gitlab Subgroup + go get
Дано:
gitlab
, скорее всего, развернутый во внутреннем контуре;- “перфекционизм”, требующий раскладывать всё “по папочкам”, или требование свыше;
- внутренний пакет на
Go
, который необходимо устанавливать как зависимость.
Предположим, что ваша зависимость лежит по адресу:
https://gitlab.your-company.tld/project-group/lib-group/lib
Установить его, указав имя пакета, у вас, к сожалению, не получится. Путей решения здесь два:
- добавить к названию репозитория окончание
.git
; - использовать директиву
replace
в файлеgo.mod
.
Первое решение максимально простое, но, думаю, многие согласятся, такое себе.
Второе решение для приведенного примера с использованием replace
будет выглядеть так:
module ...
go 1.XX
require (
...
gitlab.your-company.tld/project-group/lib-group/lib vTAG
...
)
replace gitlab.your-company.tld/project-group/lib-group/lib => gitlab.your-company.tld/project-group/lib-group/lib.git v<TAG>
Возможно, вам потребуется конфигурация url
в ~/.gitconfig
, но её лучше уточнять у тех, кто разворачивал
ваш gitlab
. В подавляющем большинстве случаев она будет примерно такой:
[url "ssh://[email protected]:"]
insteadOf = https://gitlab.your-company.tld