비공개로 호스팅되는 github 인스턴스의 Private Go 모듈
github.com에서 호스팅되지 않는 비공개 Go 라이브러리가 있으면 까다로울 수 있습니다. 다음은 Github에 대한 공개 종속성을 가져오지 않고 git 인스턴스에서 가져오는 간단한 솔루션입니다.
이것은 GOPRIVATE 환경이 도입된 Go 1.13에서만 작동합니다.
개인 라이브러리 만들기
다음 형식을 사용하여 인스턴스에 간단한 개인 저장소를 만듭니다.
your.hosted.github.instance.com/my_organization/privatelib
예를 들어 lib.go와 같은 샘플 Go 파일이 포함된 하나의 파일을 추가합니다.
package privatelib
import "fmt"
func MyPrivateCall() {
fmt.Println("My super secret lib!")
}
내보낸 리소스(함수, 열거형, 구조체...)의 시작 부분에 대문자를 사용하여 내보낸 것으로 표시하는 것을 잊지 마십시오. 이 예에서는 MyPrivateCall()이 내보내집니다.
github 인스턴스에서 토큰 생성
이 직접 링크로 토큰을 생성할 수 있습니다. https://your.hosted.github.instance.com/settings/tokens/new
항상 토큰에 필요한 최소한의 권한을 얻으십시오(개인 저장소를 읽을 수 있음).
기본 프로젝트에서 개인 라이브러리 사용
기본 Go 프로젝트에서 이제 파일 상단에서 개인 라이브러리를 가져올 수 있습니다.
package api
import (
"fmt"
//...
privatelib "your.hosted.github.instance.com/my_organization/privatelib"
)
// ...
func myApiHandler() {
privatelib.MyPrivateCall()
}
https://your.hosted.github.instance에서 호스팅되는 모듈이 go.mod에서 구문 분석될 때 자격 증명을 삽입하기 위해 mod로 이동하도록 표시해야 합니다.
go env -w GOPRIVATE=your.hosted.github.instance
go config --global url."https://your_username:[email protected]".insteadOf / "https://your.hosted.github.instance"
your_token을 2단계에서 생성된 토큰으로 바꿉니다.
이제 다음을 가져와 빌드합니다.
go mod download
go build ...
도움이 되었길 바랍니다 :)
Reference
이 문제에 관하여(비공개로 호스팅되는 github 인스턴스의 Private Go 모듈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tersfeld/private-golang-modules-on-a-private-hosted-github-instance-4jnj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)