Cómo configurar la variable de entorno GOPRIVATE

15

Comencé a trabajar en un Goproyecto y usa algunos módulos privados de repositorios privados de Github y cada vez que intento ejecutarlo go run main.gome da el siguiente 410 Goneerror:

verificar github.com/repoURL/[email protected]+incompatible/go.mod: github.com/repoURL/[email protected]+incompatible/go.mod: leyendo https: //sum.golang. org/lookup/github.com/!repoURL/[email protected]+incompatible : 410 Gone

Puedo clonar fácilmente un repositorio privado desde la terminal, lo que significa que mis sshclaves están configuradas correctamente. Leí aquí que necesito establecer GOPRIVATEuna variable de entorno, pero no estoy seguro de cómo hacerlo.

¿Alguien puede responder o señalar el tutorial relevante?

Ir: v1.13, OS: macOS Mojave

UsamaAmjad
fuente
man $(basename $SHELL)
Peter
1
Hay una ayuda para eso:go help module-private
Soroush

Respuestas:

25

Respuesta corta:

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

O

Si desea permitir todos los repositorios privados de su organización

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

Respuesta larga:

Consulte "Configuración del módulo para módulos no públicos" para obtener más información:

La variable de entorno GOPRIVATE controla qué módulos el comando go considera privados (no están disponibles públicamente) y, por lo tanto, no deben usar el proxy o la base de datos de suma de comprobación. La variable es una lista separada por comas de patrones globales (en la sintaxis de la ruta de Go.Match) de los prefijos de ruta del módulo. Por ejemplo,

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

hace que el comando go trate como privado cualquier módulo con un prefijo de ruta que coincida con cualquier patrón, incluidos git.corp.example.com/xyzzy, rsc.io/private y rsc.io/private/quux.

. .

El comando 'go env -w' (ver 'go help env') se puede utilizar para establecer estas variables para futuras invocaciones del comando go.


Nota sobre el uso de ssh:

Si usa ssh para acceder a git repo (alojado localmente), es posible que desee agregar lo siguiente a su ~/.gitconfig:

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

para que los gocomandos puedan acceder al servidor git.

ifnotak
fuente
1
¡Gracias! Trabajando ahora, entonces el truco consistía en usar la URL comodín con el nombre de la organización. go env -w GOPRIVATE=github.com/{OrgNameHere}/*
UsamaAmjad