Come impostare la variabile d'ambiente GOPRIVATE


15

Ho iniziato a lavorare su un Goprogetto e utilizza alcuni moduli privati ​​dai repository privati ​​di Github e ogni volta che provo a eseguirlo go run main.gomi dà un 410 Goneerrore di seguito :

verifica github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: lettura https: //sum.golang. org/lookup/github.com/!repoURL/go-proto@v2.86.0+ incompatibile : 410 Andato

Posso facilmente clonare un repository privato dal terminale, il che significa che le mie sshchiavi sono configurate correttamente. Ho letto qui che devo impostare GOPRIVATEla variabile d'ambiente ma non sono sicuro di come farlo.

Qualcuno può rispondere o indicare il tutorial pertinente?

Vai: v1.13, OS: macOS Mojave


man $(basename $SHELL)
Peter,

1
C'è un aiuto per questo:go help module-private
Soroush

Risposte:


25

Risposta breve:

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

O

Se si desidera consentire tutti i repository privati ​​dalla propria organizzazione

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

Risposta lunga:

Controllare "Configurazione del modulo per moduli non pubblici" per ulteriori informazioni:

La variabile d'ambiente GOPRIVATE controlla quali moduli il comando go considera privati ​​(non disponibili pubblicamente) e pertanto non deve utilizzare il database proxy o checksum. La variabile è un elenco separato da virgole di modelli glob (nella sintassi del percorso di Go.Match) di prefissi di percorso del modulo. Per esempio,

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

fa in modo che il comando go tratti come privato qualsiasi modulo con un prefisso path corrispondente a uno dei pattern, inclusi git.corp.example.com/xyzzy, rsc.io/private e rsc.io/private/quux.

. .

Il comando 'go env -w' (vedi 'go help env') può essere usato per impostare queste variabili per future invocazioni di comandi go.


Nota sull'uso di ssh:

Se usi ssh per accedere a git repo (ospitato localmente), potresti voler aggiungere quanto segue a ~/.gitconfig:

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

affinché i gocomandi possano accedere al server git.


1
Grazie! Funzionando ora, quindi il trucco era usare l'URL jolly con il nome dell'organizzazione. go env -w GOPRIVATE=github.com/{OrgNameHere}/*
UsamaAmjad,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.