Як встановити змінну середовища 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 Пройшов

Я можу легко клонувати приватне репо з терміналу, що означає, що мої sshключі правильно налаштовані Я прочитав тут, що мені потрібно встановити GOPRIVATEзмінну середовища, але не знаю, як це зробити.

Чи може хтось відповісти чи вказати на відповідний підручник?

Перейти: v1.13, ОС: macOS Mojave


man $(basename $SHELL)
Пітер

1
Для цього є допомога :go help module-private
Соруш

Відповіді:


24

Коротка відповідь:

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

АБО

Якщо ви хочете дозволити всі приватні репости від вашої організації

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

Довга відповідь:

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

Змінна середовища GOPRIVATE контролює, які модулі команда go вважає приватними (недоступними для загального користування), і тому не повинна використовувати проксі-сервер або базу даних контрольної суми. Змінна - це розділений комою список глобальних шаблонів (у синтаксисі Go's path.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.


1
Дякую! Працюючи зараз, тому хитрість полягала у використанні символів wildcard із назвою організації. go env -w GOPRIVATE=github.com/{OrgNameHere}/*
UsamaAmjad
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.