個人開発していて、GitHubの自分のプライベートリポジトリをgo get
しようとして、エラーに遭遇しました。
今後同じような目にあった時のために、備忘録として残します。
エラー内容
以下のようなエラーが発生しました。
$ go get github.com/<username>/<private-repository-name>
go: downloading github.com/<username>/<private-repository-name> v0.0.0-20200426100620-259de4f4dd2c
go get github.com/<username>/<private-repository-name>: github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: verifying module: github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: reading https://sum.golang.org/lookup/github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: 410 Gone
server response:
not found: github.com/<username>/<private-repository-name>@v0.0.0-20200426100620-259de4f4dd2c: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/d99582f38bf8799347c5c3580859733d5d5c417fd23feb23ec82dc0787605157: exit status 128:
fatal: could not read Username for 'https://github.com': terminal prompts disabled
原因
go get
でモジュールをダウンロードする際は通常、http通信をしているみたいです。
GitHubのプライベートリポジトリへは認証が通らず、エラーになっていました。
解決方法
以下手順で解決できます。
Personal access tokens
を作成git config
設定
1. Personal access tokens
を作成
GitHubのDeveloper settings画面でトークンを作成できます。 設定画面を開いたら、「Generate new token」を押すと、以下の画面が表示されます。
![]() |
---|
Note
に何用のトークンか記載repo
にチェックをいれる
これでトークンを作成できました。
2. git config
設定
以下コマンドを実行します。
$ git config --global url."https://< your token >:x-oauth-basic@github.com/".insteadOf "https://github.com/"
実行をすると、~/.gitconfig
に追記されて、go get
をすることができるようになります。