我有一个项目需要引用公司内部gitlab仓库的私有项目。我通过go env 配置和git config配置 均无法实现拉取,并且报 404错误 示例如下:
$ go env -w GOPRIVATE=gitlab.mycompany.com
$ go env -w GOINSECURE=gitlab.mycompany.com
$ go env -w GONOPROXY=gitlab.mycompany.com
# 配置 ~/.netrc 文件
$ go get -v -x gitlab.mycompany.com/testgroup/compkg
# get https://gitlab.mycompany.com/?go-get=1
# get https://gitlab.mycompany.com/testgroup/testpkg?go-get=1
# get https://gitlab.mycompany.com/testgroup?go-get=1
# get https://gitlab.mycompany.com/testgroup?go-get=1: 404 Not Found (0.044s)
# get https://gitlab.mycompany.com/?go-get=1: 403 Forbidden (0.044s)
# get https://gitlab.mycompany.com/testgroup/testpkg?go-get=1: 404 Not Found (0.044s)
# get https://gitlab.mycompany.com/testgroup/testpkg?go-get=1
# get https://gitlab.mycompany.com/testgroup?go-get=1
# get https://gitlab.mycompany.com/?go-get=1
# get https://gitlab.mycompany.com/testgroup/testpkg?go-get=1: 404 Not Found (0.001s)
# get https://gitlab.mycompany.com/testgroup?go-get=1: 404 Not Found (0.001s)
# get https://gitlab.mycompany.com/?go-get=1: 403 Forbidden (0.002s)
go get: unrecognized import path "gitlab.mycompany.com/testgroup/testpkg": reading https://gitlab.mycompany.com/testgroup/testpkg?go-get=1: 404 Not Found
然后我修改http to ssh 和 https添加内容
# git 配置1
$ git config --global url."git@gitlab.mycompany.com:".insteadOf "https://gitlab.mycompany.com"
$ go get -v -x gitlab.mycompany.com/testgroup/compkg
# 错误和上一个代码块中的相同
# git 配置2
$ git config --global url."https://${user}:${personal_access_token}@gitlab.mycompany.com".insteadOf "gitlab.mycompany.com"
$ go get -v -x gitlab.mycompany.com/testgroup/compkg
# 错误和上一个代码块中的相同
请问是否是我配置错误,还是说需要通过其他方式才能完成下载。麻烦各位大佬了
PS: 私有gitlab 版本: Gitlab Community Edition 13.6.7
有疑问加站长微信联系(非本文作者)

可以访问
https://gitlab.mycompany.com/testgroup/testpkg?go-get=1
,能否访问,以及返回的html中是否有header:go-import等。 404的错误很少见,你确定仓库地址正确? 一般情况下,不用配置后面的ssh替代。