본문 바로가기

Programming Language/golang

golang prviate repository에서 디펜던시 가져오는 방법

golang private repository를 하위 모듈로 가져올 때 그냥 import를 실행하고 나면 다음과 같은 이슈가 종종 발생하곤합니다.

$ go get github.com/AndersonChoi/my-private-repo
go: downloading github.com/AndersonChoi/my-private-repo v0.0.0-20230306053459-dec1333da9d3
go: github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: verifying module: github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: reading https://sum.golang.org/lookup/github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: 404 Not Found
        server response: not found: github.com/AndersonChoi/my-private-repo@v0.0.0-20230306053459-dec1333da9d3: unrecognized import path "github.com/AndersonChoi/my-private-repo": https fetch: Get "https://github.com/AndersonChoi/my-private-repo?go-get=1": dial tcp 10.93.97.11:443: connect: connection refused

이런 경우에는 다음과 같이 명령어를 내리면 module로 디펜던시를 가져오게 됩니다.

$ GOPRIVATE="github.com" go get github.com/AndersonChoi/my-private-repo
go: downloading github.com/AndersonChoi/my-private-repo v0.0.0-20230306053459-dec1333da9d3
go: added github.com/AndersonChoi/my-private-repo v0.0.0-20230306053459-dec1333da9d3

문제는 다음에 다른 사람이 이렇게 추가한 서브모듈이 있는 레포지토리를 사용할때 다시 이 명령어를 사용하여 가져와야 한다는 점입니다.

 

이를 해결하기 위해서는 vendor를 사용하면됩니다.

$ go mod tidy                                                                                                     1 ↵
$ go mod vendor

이후에 vendor 디렉토리가 생긴 것을 확인할 수 있습니다.

$ ls
Dockerfile README.md  go.mod     go.sum     src        vendor
반응형