суббота, 13 марта 2021 г.

Модули в Golang: частные модули, прямой доступ к частным модулям

Команду go можно настроить для обхода общедоступных прокси и загрузки частных модулей непосредственно с серверов контроля версий. Это полезно, когда запуск частного прокси-сервера невозможен.

Чтобы настроить команду go таким образом, установите GOPRIVATE, заменив corp.example.com префиксом частного модуля:

GOPRIVATE=corp.example.com

В этой ситуации нет необходимости изменять переменную GOPROXY. По умолчанию используется https://proxy.golang.org,direct, который указывает команде go сначала попытаться загрузить модули с https://proxy.golang.org, а затем вернуться к прямому подключению, если этот прокси-сервер отвечает 404 (Not Found) или 410 (Gone).

Параметр GOPRIVATE указывает команде go не подключаться к прокси-серверу или базе данных контрольных сумм для модулей, начинающихся с corp.example.com.

Внутренний HTTP-сервер все еще может понадобиться для разрешения путей модулей к URL-адресам репозитория. Например, когда команда go загружает модуль corp.example.com/mod, она отправляет запрос GET на https://corp.example.com/mod?go-get=1 и будет искать URL репозитория в ответе. Чтобы избежать этого требования, убедитесь, что каждый путь к частному модулю имеет суффикс VCS (например, .git), обозначающий корневой префикс репозитория. Например, когда команда go загружает модуль corp.example.com/repo.git/mod, она клонирует репозиторий Git по адресу https://corp.example.com/repo.git или ssh://corp.example.com/repo.git без дополнительных запросов.

Разработчикам потребуется доступ для чтения к репозиториям, содержащим частные модули. Это можно настроить в глобальных файлах конфигурации VCS, таких как .gitconfig. Лучше всего, если инструменты VCS настроены так, чтобы не требовать интерактивных подсказок аутентификации. По умолчанию при вызове Git команда go отключает интерактивные подсказки, задав GIT_TERMINAL_PROMPT=0, но при этом учитывает явные настройки.


Читайте также:


Комментариев нет:

Отправить комментарий