2021年8月14日土曜日

GitHub の personal access token で苦労した

今日から GitHub の personal access token の設定が必要になり、下のエラーが出るようになりました。 これ対応に苦労したのは私だけなんだろうか。
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access 'https://github.com/[user]/[repo]/': The requested URL returned error: 403


ちなみにリポジトリごとの remote url を以下のように変えれば動くのはわかってます。 ただこの方法だとリポジトリが死ぬほどたくさんあると、頻繁に書き換えないといけないので死にます。 Grep & Replace で対応してるといつかやらかしそうなので、もっと簡単に一括管理できる方法が必要。
# from
https://github.com/[user]/[repo]
# to
https://[user]:[token]@github.com/[user]/[repo]


最初は credential 設定だけでいけるんじゃないかと思いました。でも駄目。
# from command
git config --global credential.helper store
# or edit ~/.gitconfig
[credential]
  helper = store
上記を設定した後に、参照先である ~/.git-credentials に URL設定 (下) を記載すればいけるやろと思ったら、変わらずアクセストークン必要と怒られて困りました。 Windows だとイケるよみたいなサイトがたくさんあるんですが、Linux でまったく動かないのは何なのだろう。 自分の公開リポジトリに対してチェックしているので少し状況は違うかも知れないけど、とりあえず駄目。
https://[user]:[token]@github.com


次に、URL を書き換えればいけるかなと思ったのですが、これも駄目でした。
# from command
git config --global \
  url."https://github.com/".insteadOf \
  https://[user]:[token]@github.com/
# or edit ~/.gitconfig
[url "https://github.com/"]
  insteadOf = https://[user]:[token]@github.com/
怪しげなテクは許してくれないみたいです。


解決策がまったくわからず、仕方ないので SSH 経由でアクセスしたらいけました。
# from command
git remote set-url origin git@github.com[user]/[repo].git
# or edit ~/.gitconfig
[remote "origin"]
  url = git@github.com:[user]/[repo].git
まあ SSH 経由ならトークンいらないと書いてあるのでそりゃそうなのですが、 HTTPS 経由の根本的な解決にはなってない気がする。 まあリポジトリの URL を書き換えさえすればいいので、楽と言えば楽です。

うーん、公式ドキュメントはちょっと説明不足かも? それとも何か設定を見落としているのかな。

0 件のコメント: