“go get”无法下载 go 包,Git 存储库托管在 Github Entreprise 上(在 VPN 后面)

mip*_*pnw 6 git github go github-enterprise

我正在尝试下载 Entreprise Github 上的 Go 软件包。

值得注意的是,该域在 VPN 外部不可见,但我已连接到该 VPN。

我可以使用浏览器浏览https://github.mydomain.com/some_repository,但需要登录。

$ go get -v github.mydomain.com/some_repository

get "github.mydomain.com/some_repository": found meta tag get.metaImport{Prefix:"github.mydomain.com/some_repository", VCS:"git", RepoRoot:"https://github.mydomain.com/some_repository.git"} at //github.mydomain.com/some_repository?go-get=1
go: downloading github.mydomain.com/some_repository v0.0.0
go get github.mydomain.com/some_repository: github.mydomain.com/some_repository@v0.0.0: verifying module: github.mydomain.com/some_repository@v0.0.0: reading https://sum.golang.org/lookup/github.mydomain.com/some_repository@v0.0.0: 410 Gone
        server response: not found: github.mydomain.com/some_repository@v0.0.0: unrecognized import path "github.mydomain.com/some_repository": https fetch: Get "https://github.mydomain.com/some_repository?go-get=1": dial tcp: lookup github.mydomain.com on 8.8.8.8:53: no such host
Run Code Online (Sandbox Code Playgroud)

我最初认为这是由于命令行工具没有访问令牌,因为浏览器可以访问但不能访问go get。我在 Entreprise Github 上生成了一个令牌,并尝试通过以下方式解决此问题:

git config --local http.extraheader "PRIVATE-TOKEN: <token>"
git config --local url."git@github.mydomain.com:".insteadOf "https://github.mydomain.com/"
Run Code Online (Sandbox Code Playgroud)

正如这里所解释的,但这没有帮助。

的存在lookup github.mydomain.com on 8.8.8.8:53: no such host可能是一个线索,因为 8.8.8.8 是 google 的 DNS,并且它不可能工作,因为 mydomain.com 只存在于 VPN 上。如果断开 VPN 连接,则表明 mydomain.com 不存在。我不确定为什么go get要使用 8.8.8.8 作为 DNS。

scutil --dns | grep 'nameserver\[[0-9]*\]'列出了几个 DNS 服务器,其中没有一个是 8.8.8.8,所以也许go get对其进行硬编码?

mip*_*pnw 18

看来设置环境变量GOPRIVATE=*.mydomain.com可以解决这个问题。