Как установить переменную среды GOPRIVATE

15

Я начал работать над Goпроектом, и он использует некоторые приватные модули из частных репозиториев Github, и всякий раз, когда я пытаюсь его запустить, go run main.goвыдается следующее сообщение 410 Goneоб ошибке:

проверка github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: чтение https: //sum.golang. org/lookup/github.com/!repoURL/go-proto@v2.86.0+совместимо : 410 Gone

Я могу легко клонировать приватное репо из терминала, что означает, что мои sshключи настроены правильно. Я прочитал здесь, что мне нужно установить GOPRIVATEпеременную среды, но я не уверен, как это сделать.

Может кто-нибудь ответить или указать на соответствующий учебник?

Go: v1.13, ОС: macOS Mojave

UsamaAmjad
источник
man $(basename $SHELL)
Питер
1
Для этого есть помощь :go help module-private
Сооруш,

Ответы:

25

Короткий ответ:

go env -w GOPRIVATE=github.com/repoURL/private-repo

ИЛИ

Если вы хотите разрешить все частные репо из вашей организации

go env -w GOPRIVATE=github.com/<OrgNameHere>/*

Длинный ответ:

Проверьте "Конфигурация модуля для непубличных модулей" для получения дополнительной информации:

Переменная среды GOPRIVATE определяет, какие модули команда go считает закрытыми (недоступными публично) и поэтому не должна использовать базу данных прокси или контрольной суммы. Переменная представляет собой разделенный запятыми список шаблонов глобуса (в синтаксисе пути Go.Match) префиксов пути модуля. Например,

 GOPRIVATE=*.corp.example.com,rsc.io/private

заставляет команду go рассматривать как закрытый любой модуль с префиксом пути, совпадающим с любым шаблоном, включая git.corp.example.com/xyzzy, rsc.io/private и rsc.io/private/quux.

, ,

Команда 'go env -w' (см. 'Go help env') может использоваться для установки этих переменных для будущих вызовов команды go.


Примечание по использованию ssh:

Если вы используете ssh для доступа к git repo (локально размещенный), вы можете добавить следующее в ваш ~/.gitconfig:

[url "ssh://git@git.local.intranet/"]
       insteadOf = https://git.local.intranet/

чтобы goкоманды могли получить доступ к git-серверу.

ifnotak
источник
1
Спасибо! Работая сейчас, чтобы хитрость заключалась в использовании универсального URL-адреса с названием организации. go env -w GOPRIVATE=github.com/{OrgNameHere}/*
Усама Амжад