Comment définir la variable d'environnement GOPRIVATE


15

J'ai commencé à travailler sur un Goprojet et il utilise des modules privés à partir des dépôts privés Github et chaque fois que j'essaye de l'exécuter, go run main.gocela me donne une 410 Goneerreur ci-dessous :

vérification de github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: lecture https: //sum.golang. org/lookup/github.com/!repoURL/go-proto@v2.86.0+incompatible : 410 Gone

Je peux facilement cloner le dépôt privé depuis le terminal, ce qui signifie que mes sshclés sont correctement configurées. J'ai lu ici que je dois définir GOPRIVATEla variable d'environnement mais je ne sais pas comment faire.

Quelqu'un peut-il répondre ou pointer vers le didacticiel correspondant?

Go: v1.13, OS: macOS Mojave


man $(basename $SHELL)
Peter

1
Il y a une aide pour cela:go help module-private
Soroush

Réponses:


25

Réponse courte:

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

OU

Si vous souhaitez autoriser tous les référentiels privés de votre organisation

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

Longue réponse:

Consultez «Configuration des modules pour les modules non publics» pour plus d'informations:

La variable d'environnement GOPRIVATE contrôle les modules que la commande go considère comme privés (non disponibles publiquement) et ne doit donc pas utiliser le proxy ou la base de données de somme de contrôle. La variable est une liste séparée par des virgules de modèles glob (dans la syntaxe du chemin de Go.Match) des préfixes de chemin de module. Par exemple,

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

oblige la commande go à traiter comme privé tout module avec un préfixe de chemin correspondant à l'un des modèles, y compris git.corp.example.com/xyzzy, rsc.io/private et rsc.io/private/quux.

. .

La commande 'go env -w' (voir 'go help env') peut être utilisée pour définir ces variables pour les futures invocations de la commande go.


Remarque sur l'utilisation de ssh:

Si vous utilisez ssh pour accéder à git repo (hébergé localement), vous souhaiterez peut-être ajouter ce qui suit à votre ~/.gitconfig:

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

pour que les gocommandes puissent accéder au serveur git.


1
Merci! Travailler maintenant, donc l'astuce était d'utiliser une URL générique avec le nom de l'organisation. go env -w GOPRIVATE=github.com/{OrgNameHere}/*
UsamaAmjad
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.