tanacasinoのメモ

what are you waiting for ?

homebrew にて GitHubの API rate limit にかかって怒られた場合の対処方法

MacBook Proを新調したのでいろいろとセットアップ中です。 homebrewの検索 brew search をしまくっていたら、以下のエラーを見たのでとりあえず対策したのでメモ。

ちなみにエラーに書いてあるとおり待てば時間が解決してくれるエラーなので無理して設定する必要はないです。

$ brew search java
app-engine-java-sdk   javarepl              jslint4java           libreadline-java
Error: GitHub API rate limit exceeded for 121.108.126.210. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
Try again in 46 minutes 16 seconds, or create an API token:
  https://github.com/settings/applications
and then set HOMEBREW_GITHUB_API_TOKEN.

まあエラーに書いてあるとおり対策はというと環境変数 HOMEBREW_GITHUB_API_TOKENGitHubAPI Tokenを設定せよ!ということですね。

GitHubAPI Tokenは以下の手順で作成できます。

  1. GitHubにログインする
  2. 右上の Settings アイコンをクリックして設定ページに移動する
  3. 左側のメニューから Application を選択して移動する
  4. Generate new tokenをクリックする

    f:id:tanacasino:20141103204957p:plain

  5. public_repoのみ選択した状態にして Generate token

    f:id:tanacasino:20141103205026p:plain

  6. めでたくtokenという名の文字列が表示されるので控えておく(もう二度と参照できないので、忘れたら作りなおす必要がある)

    f:id:tanacasino:20141103205045p:plain

GitHub API Tokenをめでたくゲットしたら、シェルの設定ファイルにでも環境変数をセットすればおしまいです。

例えば、$HOME/.bashrc あたりに以下を追記してリロード or 再度ログイン等すれば、homebrewから怒られなくなります。

export HOMEBREW_GITHUB_API_TOKEN="さっきゲットしたtoken文字列"

ちなみに前は public_repoへのアクセスのみのAPI権限なんて何に使うんや?と思ってたけどIPで制限かかってたんですね。。。 皆さん ちゃんとその時の用途にあわせて必要最小限の権限を与えたtokenを作りましょう!

GitBucketのAPI Tokenもいつか実装していつか権限設定も細かく・・・