golang で作業している。
お仕事なのでプライベートリポジトリなのだが、場所が個人ではなくorganizationにある。
さて go getしたいのだが、organization には Personal Access Token (PAT)はない。
どうしたらよかろうか?
$ go version
go version go1.17.3 linux/amd64
検索して出てきたのは2つの方式だった(他にもあると思うけど)。
- PATでアクセス
- SSHにする
PAT方式で出てきたのはこちら。
https://zenn.dev/shootacean/articles/go-get-from-github-private-repository
organizationだからPATはないと書いたが、ここでは個人アカウントのPATを使う。
つまり、個人アカウントだろうとorganizationだろうと気にするなということだ。
これでできた。
GOPRIVATEは設定しなくても特にエラーは出なかった。
SSH方式で出てきたのはこちら。
https://gist.github.com/magnetikonline/3ceec9ece11375393ab5781d9370ee99
こちらはダメだった。
git clone で https://github.com で始まるリポジトリ名を打ち込むと SSHのパスフレーズを要求されたのでできるかと思ったのだけど、go getの方は「git@github.com: Permission denied (publickey)」としばしば見かけるエラーになった。
表示しているコマンドもcloneしているだけだし、そのまま打ち込んでもやっぱりパスフレーズ要求になったから、stdinを止められてるとかでダメなんだろうか。
~/.netrc で入力を回避するやり方も出ていたので、それと併用するのかもしれんが、試してはいない。
というわけで、「GitHubのorganization のプライベートリポジトリを go get するとき、個人アカウントのプライベートリポジトリをPATを使って go getするやり方と同じで取得できた」ということにしておく。
GOPRIVATEがいるのは、おそらく go.mod の中にプライベートリポジトリがある場合だと思う。
go get してエラーになるようだったら、GOPRIVATEに github.com/xxx みたいなのを設定すればできた。
全部同じ organizationのプライベートリポジトリだったのだけど、複数の organization にまたがってかつプライベートリポジトリとかだとわからんね。そんなことをするなってことだろうけど。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。