web-dev-qa-db-fra.com

Comment définir la variable d'environnement GOPRIVATE

J'ai commencé à travailler sur un projet Go et il utilise des modules privés à partir des dépôts privés Github et chaque fois que j'essaie d'exécuter go run main.go ça me donne un dessous 410 Gone Erreur:

vérification de github.com/repoURL/[email protected]+incompatible/go.mod: github.com/repoURL/[email protected]+incompatible/go.mod: lecture https: // sum.golang.org/lookup/github.com/!repoURL/[email protected]+incompatible : 410 Parti

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

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

Aller: v1.13, OS: macOS Mojave

14
UsamaAmjad

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:

Vérifiez "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 globaux (dans la syntaxe du chemin d'accès de Go. Correspondance) des préfixes de chemin d'accès du 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 appels futurs de la commande go.


Remarque sur l'utilisation de ssh:

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

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

pour que les commandes go puissent accéder au serveur git.

19
ifnotak