📖
Bitbucketのプライベートリポジトリをgo getする
やりたいこと
Bitbucket のプライベートリポジトリを go get
したい。
go get bitbucket.org/<account_name>/<private_repository_name>
必要な設定
Bitbucket に SSH 鍵を登録する
- https://bitbucket.org/account/settings/ssh-keys/ にアクセス
- 「鍵を追加」をクリック
- SSH 鍵を貼り付けて、「鍵を追加」をクリック
マニュアル: https://ja.confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html
git-config で insteadOf を設定する
git config --global url."git@bitbucket.org:<account_name>".insteadOf "https://bitbucket.org/<account_name>"
グローバル設定にすること。ローカル設定ではダメ。
GOPRIVATE
を設定する
環境変数 GOPRIVATE
に bitbucket.org/<account_name>
を追加する。
export GOPRIVATE=bitbucket.org/<account_name>
- すでに
GOPRIVATE
に他の値を設定している場合は、カンマで区切る。
export GOPRIVATE=$GOPRIVATE,bitbucket.org/<account_name>
-
go env -w
を使っても良い。
go env -w GOPRIVATE=bitbucket.org/<account_name>
Bitbucket のアプリパスワードを .netrc に書く
アプリパスワードの作成
- https://bitbucket.org/account/settings/app-passwords/ にアクセス
- 「アプリパスワードの作成」をクリック
- ラベルを適当に入力し、権限は「リポジトリ > 読み取り」にチェックを入れて、「作成」をクリック
- 作成後に表示されるアプリパスワードをコピーしておく
* 再表示できないので注意。忘れたらもう一度作成する。
マニュアル: https://support.atlassian.com/ja/bitbucket-cloud/docs/app-passwords/#Create-an-app-password
.netrc の設定
エディタで ~/.netrc
を開き、以下の内容を記述する。
machine api.bitbucket.org
login <account_name>
password 上記で控えたアプリパスワード
- これをしないと
go get
で以下のエラーが出る:$ go get bitbucket.org/account_name/repository_name go: missing Mercurial command. See https://golang.org/s/gogetcmd go get bitbucket.org/account_name/repository_name: reading https://api.bitbucket.org/2.0/repositories/account_name/repository_name?fields=scm: 403 Forbidden server response: Access denied. You must have write or admin access.
go get
以上の設定を行えば go get
できるようになる:
go get bitbucket.org/<account_name>/<private_repository_name>
参考
Discussion