🔑

SAML認証の掛かったGithubプライベートリポジトリのGoパッケージをimportする

2024/03/25に公開

はじめに

やりたかったこととして、
SAML認証が掛かったGithubプライベートリポジトリで管理しているリポジトリAのパッケージを別のリポジトリBでimportするということ

手順

1. インポートされる側のプライベートリポジトリを用意

適当にPrivateリポジトリを作成します。今回は仮にgo-libのようなリポジトリと仮定します

$ cd /path/to/go-lib

$ go mod init github.com/YourTeam/go-lib
go-lib/
    - go.mod
    - log/
        log.go

log.goの中は適当に何か関数とか作ってみてもいいかもしれないです

2. トークンの取得

GithubでPersonal Access Tokenを作成するためにトークン作成ページにアクセスをします。
この際に、Fine-grained tokensTokens(classic) がありますが、 Tokens(classic) でトークンを作成します。

トークンが作成されたら表示されるトークンの値をコピーしておき、以下のように表示される Configure SSO というボタンが表示されるのでクリックします

3. プライベートリポジトリをインポート

インポートするGo Appの用意

$ mkdir go-importer

$ cd go-importer

$ go mod init github.com/YourTeam/go-importer

とgo getする側のgo appの準備が出来たら、プライベートリポジトリをgo getするための設定を行っていきます。

gitの設定を変更

2で作成したtokenの値が hogetokenだとします

# 以下が書式
$ git config --global url."https://【トークン】:x-oauth-basic@github.com/".insteadOf "https://github.com/"

$ git config --global url."https://hogetoken:x-oauth-basic@github.com/".insteadOf "https://github.com/"

のようにします

インポート

$ cd /path/to/go-importer

# logパッケージをgo get
$ GOPRIVATE=github.com/YourTeam/go-lib go get github.com/YourTeam/go-lib/log

以上でSAML認証の掛かったプライベートリポジトリにあるGoパッケージをインポート出来るかと思います

Discussion