I started working on a Go
project and it uses some private modules from Github private repos and whenever I try to run go run main.go
it gives me a below 410 Gone
error:
verifying github.com/repoURL/[email protected]+incompatible/go.mod: github.com/repoURL/[email protected]+incompatible/go.mod: reading https://sum.golang.org/lookup/github.com/!repoURL/[email protected]+incompatible: 410 Gone
I can easily clone private repo from terminal which means my ssh
keys are configured correctly. I read here that I need to set GOPRIVATE
environment variable but I am not sure how to do that.
Can anyone answer or point to the relevant tutorial?
Go: v1.13, OS: macOS Mojave
causes the go command to treat as private any module with a path prefix matching either pattern, including git.corp.example.com/xyzzy, rsc.io/private, and rsc.io/private/quux. The 'go env -w' command (see 'go help env') can be used to set these variables for future go command invocations.
The new GOPRIVATE environment variable indicates module paths that are not publicly available. It serves as the default value for the lower-level GONOPROXY and GONOSUMDB variables, which provide finer-grained control over which modules are fetched via proxy and verified using the checksum database.
go env -w GOPRIVATE=github.com/repoURL/private-repo
OR
If you want to allow all private repos from your organization
go env -w GOPRIVATE=github.com/<OrgNameHere>/*
Check "Module configuration for non-public modules" for more information:
The GOPRIVATE environment variable controls which modules the go command considers to be private (not available publicly) and should therefore not use the proxy or checksum database. The variable is a comma-separated list of glob patterns (in the syntax of Go's path.Match) of module path prefixes. For example,
GOPRIVATE=*.corp.example.com,rsc.io/private
causes the go command to treat as private any module with a path prefix matching either pattern, including git.corp.example.com/xyzzy, rsc.io/private, and rsc.io/private/quux.
. .
The 'go env -w' command (see 'go help env') can be used to set these variables for future go command invocations.
If you use ssh to access git repo (locally hosted), you might want to add the following to your ~/.gitconfig
:
[url "ssh://[email protected]/"] insteadOf = https://git.local.intranet/
for the go
commands to be able to access the git server.
Just a follow up on the usage of ssh, this is the command used to get it working:
GitHub:
git config --global url."[email protected]:".insteadOf "https://github.com/"
Bitbucket:
git config --global url."[email protected]:".insteadOf "https://bitbucket.org/"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With