Cara mengatur variabel lingkungan GOPRIVATE


15

Saya mulai mengerjakan Goproyek dan menggunakan beberapa modul pribadi dari Github private repos dan setiap kali saya mencoba menjalankannya go run main.gomemberi saya 410 Gonekesalahan di bawah ini :

memverifikasi github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod: membaca https: //sum.golang. org/lookup/github.com/!repoURL/go-proto@v2.86.0+ tidak kompatibel : 410 Hilang

Saya dapat dengan mudah mengkloning repo pribadi dari terminal yang berarti sshkunci saya dikonfigurasikan dengan benar. Saya membaca di sini bahwa saya perlu mengatur GOPRIVATEvariabel lingkungan tetapi saya tidak yakin bagaimana melakukannya.

Adakah yang bisa menjawab atau menunjuk ke tutorial yang relevan?

Go: v1.13, OS: macOS Mojave


man $(basename $SHELL)
Peter

1
Ada bantuan pergi untuk itu:go help module-private
Soroush

Jawaban:


24

Jawaban singkat:

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

ATAU

Jika Anda ingin mengizinkan semua repo pribadi dari organisasi Anda

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

Jawaban panjang:

Periksa "Konfigurasi modul untuk modul non-publik" untuk informasi lebih lanjut:

Variabel lingkungan GOPRIVATE mengontrol modul mana yang dianggap perintah privat (tidak tersedia untuk umum) dan karenanya tidak boleh menggunakan database proxy atau checksum. Variabel adalah daftar pola glob yang dipisahkan koma (dalam sintaks Go's path.Match) dari awalan lintasan modul. Sebagai contoh,

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

menyebabkan perintah go untuk memperlakukan sebagai pribadi modul apa pun dengan awalan jalur yang cocok dengan pola mana pun, termasuk git.corp.example.com/xyzzy, rsc.io/private, dan rsc.io/private/quux.

. .

Perintah 'go env -w' (lihat 'go help env') dapat digunakan untuk mengatur variabel-variabel ini untuk pemanggilan perintah go selanjutnya.


Catatan tentang penggunaan ssh:

Jika Anda menggunakan ssh untuk mengakses git repo (dihosting secara lokal), Anda mungkin ingin menambahkan yang berikut ke ~/.gitconfig:

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

untuk goperintah agar dapat mengakses server git.


1
Terima kasih! Bekerja sekarang jadi triknya adalah menggunakan wildcard url dengan nama organisasi. go env -w GOPRIVATE=github.com/{OrgNameHere}/*
UsamaAmjad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.