Galirage Inc.
🗝️

PAT生成によるBrownout Errorの解決方法【GitHub】

2021/07/28に公開

はじめまして、ますみです!

株式会社Galirage(ガリレージ)という「生成AIに特化して、システム開発・アドバイザリー支援・研修支援をしているIT企業」で、代表をしております^^

自己紹介.png

この記事では、以下のようなエラーに対する対処法を解説します。

% git push origin main
remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead.
remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information.
fatal: unable to access 'https://github.com/Masumi-M/xxx/': The requested URL returned error: 403

エラー文を見る限り、Personal Access Token(PAT)を作る必要がありそうなので、トークンの生成から登録までをこの記事では紹介します。

エラー対処法

1. Personal Access Tokenの生成

以下のようにSettings > Developer settings > Personal access tokens > Generate new tokenをクリックして、トークンを作成します。
1-github-personal-access-token.png

2-github-personal-access-token.png

3-github-personal-access-token.png

具体的なトークンの設定方法は以下の通りです。
権限はrepo / admin:repo_hook / delete_repoだけで十分かと思いますが、もしも他の権限も付与したい場合は適宜追加してください。
4-github-personal-access-token.png

最後に、トークンが発行されたら、トークンをコピーしましょう。
5-github-personal-access-token.png

2. Key Accessへのトークンの登録

続いて、発行したトークンをmacの中のキーチェーンアクセスに登録します。
以下のようにして、github.comの鍵を探し、パスワードをトークンに置き換えましょう。
6-github-personal-access-token.png

7-github-personal-access-token.png

8-github-personal-access-token.png

3. 再度git pushして確認

最後に、再度プッシュして認証ができているか確認しましょう。
以下のようにプッシュができるになれば成功です。

% git push origin main
Enumerating objects: 24, done.
Counting objects: 100% (24/24), done.
Delta compression using up to 8 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (17/17), 3.05 KiB | 1.53 MiB/s, done.
Total 17 (delta 8), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (8/8), completed with 6 local objects.
To https://github.com/Masumi-M/xxx
   17c54df..b0bb308  main -> main

余談:brownoutとは?

電気工学の分野では「電圧が規定動作電圧範囲以下となるが、0Vまでは下がらない状態」という意味です(参考)。Blackoutのように真っ暗ではない「薄暗い状態」ということですね。

ちなみに、今回の場合のbrownoutとは情報工学の概念で 「ソフトウェアアプリケーションの頑健性を維持するために一部の制約を設ける」 という意味です。Googleで検索すると、この用語の説明はあまり出てこなこなかったため、おそらく比較的ニッチな概念なのかなと思いました。

クラウドの分野では 「複数ユーザーがホストされているサービスへのアクセスが集中した時(capacity shortage; この場合はおそらくサーバーのメモリ不足)に設けられる制約を設ける事」 に相当します。

以下のICSE(International Conference on Software Engineering)の学会誌により詳しくクラウドアプリケーションにおけるbrownoutについてまとめられています。

https://dl.acm.org/doi/10.1145/2568225.2568227

最後に

最後まで読んでくださり、ありがとうございました!
この記事を通して、少しでもあなたの学びに役立てば幸いです!

宣伝:もしもよかったらご覧ください^^

AIとコミュニケーションする技術(インプレス出版)』という書籍を出版しました🎉

これからの未来において「変わらない知識」を見極めて、生成AIの業界において、読まれ続ける「バイブル」となる本をまとめ上げました。

かなり自信のある一冊なため、もしもよろしければ、ご一読いただけますと幸いです^^

Galirage Inc.
Galirage Inc.

Discussion