Я пытаюсь go get
из gitlab.com:
- частного репозитория (который используется как Go
import
и не заканчивается .git
в этих import
путей) - в качестве зависимости в другом Go проекте (также частном)
- с использованием Go модулей (Go версия 1.14.2 с использованием
GOPRIVATE
и S SH ключи, см. ниже) - и указание идентификатора фиксации (это в основном экспериментальная ветка, поэтому я не могу просто получить ветку
master
без указания идентификатора фиксации).
Однако я вижу это:
go get gitlab.com/${MY_GL_ORG_GROUP}/${MY_GL_ORG_SUBGROUP}/${MY_REPO}@${MY_COMMIT_ID}
go get gitlab.com/${MY_GL_ORG_GROUP}/${MY_GL_ORG_SUBGROUP}/${MY_REPO}@${MY_COMMIT_ID}: gitlab.com/${MY_GL_ORG_GROUP}/${MY_GL_ORG_SUBGROUP}/${MY_REPO}@${MY_COMMIT_ID}: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/${MY_USER}/${PATH_TO_GOPATH}/pkg/mod/cache/vcs/f506075eedf1fdb9094ad13306aaa30af1f5b9a038c7cae6172b7525b6e6fdca: exit status 128:
remote:
remote: ========================================================================
remote:
remote: The project you were looking for could not be found.
remote:
remote: ========================================================================
remote:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Как мне этого добиться?
Мне кажется, я правильно настроил свой S SH ключ с GitLab, как я вижу это:
$ ssh -T git@gitlab.com
Welcome to GitLab, @${MY_GITLAB_USERNAME}!
Я думаю, что я могу go get
через S SH хранилище, заканчивающееся .git
, потому что я установил это:
git config \
--global \
url."ssh://git@gitlab.com".insteadOf \
"https://gitlab.com"
и я вижу, что у меня есть эта глобальная git
конфигурация с:
$ git config --global --list | grep -i url
url.ssh://git@gitlab.com.insteadof=https://gitlab.com
Я знаю, что могу go get
частных репозиториев GitLab , заканчивающихся .git
, потому что у меня есть также установите переменные окружения GOPRIVATE
, чтобы команда go
не жаловалась на метаданные при получении этих репозиториев:
go env -w GOPRIVATE=gitlab.com/${MY_GL_ORG_GROUP}/*
Затем я могу проверить этот параметр с помощью:
$ go env | grep -i gitlab
GONOPROXY="gitlab.com/${MY_GL_ORG_GROUP}/*"
GONOSUMDB="gitlab.com/${MY_GL_ORG_GROUP}/*"
GOPRIVATE="gitlab.com/${MY_GL_ORG_GROUP}/*"
Я думаю, что что-то не так с GitLab.com при использовании git
с ключами S SH и Go модулями с репозиториями , не заканчивающимися .git
, но я не уверен, что еще можно сделать больше, чем указано выше.
Что не так с моей настройкой?