[Mac] Homebrew 出現 GitHub API rate limit exceed 的訊息
最近時常使用 Homebrew 在 Mac 上安裝軟體,
但偶爾開始出現了類似下面的錯誤訊息,說 GitHub API rate limit exceeded,
看起來是流量滿載了:
testuser@localhost ~ $ brew search phone headphones Caskroom/cask/iphone-backup-extractor Caskroom/cask/linphone Caskroom/cask/phonebrowse Caskroom/cask/phonetrans Caskroom/cask/iphoney Caskroom/cask/makeiphoneringtone Caskroom/cask/phoneclean Caskroom/cask/polyphone Caskroom/cask/juicephone Caskroom/cask/myphonedesktop Caskroom/cask/phonerescue Error: GitHub API rate limit exceeded for 1.2.3.4. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) Try again in 59 minutes 34 seconds, or create an personal access token: https://github.com/settings/tokens and then set the token as: HOMEBREW_GITHUB_API_TOKEN
Git 很好心的說明了如果是認證過的使用者的話,會給你比較高的流量,
這樣就不會這麼容易撞到這個錯誤了~
嗯… 那就來設定一個 personal access token 看看吧~
參考資料:
GitHub: Creating an access token for command-line use
stackoverflow: Setting Github API token for Homebrew
1. 註冊 GitHub
到 GitHub 的網頁上先註冊好一個帳號~
這邊因為我以前已經做過了,所以沒有圖可以抓,
不過應該也沒什麼困難的…
2. 在 GitHub 上建立一個新的 personal access token
到 https://github.com/settings/tokens,可以看到如下畫面:
按下右上角的 Generate new token 後,接著設定 token name 和權限~
token name 選自己記得住的名字就行了,
我是直接把 HOMEBREW_GITHUB_API_TOKEN 當名字貼上去~
權限的部分保留預設值就可以了~設定好後就可以按下 Generate token:
建立完成之後,會顯示一串很長的十六進位數字 (紅色框所在的地方),
趕快把它複製下來存在安全的地方,
因為接下來不會有任何地方可以再看到這個數字了!
重新回到 Personal access tokens 這頁的話,就可以看到剛剛建立的 token~
(不過現在就看不到那串長長的數字了,真的不記得的話,按 Delete 砍掉重練吧)
3. 設定 HOMEBREW_GITHUB_API_TOKEN 環境變數
將下面的指令放到 ~/.bash_profile 裡面,
好讓每次執行 shell 時都自動設定 HOMEBREW_GITHUB_API_TOKEN 這個環境變數,
這邊要記得把 xxxxxxx 換成那串很長的十六進位數字:
export HOMEBREW_GITHUB_API_TOKEN=xxxxxxx
設定好後,關閉 terminal 再重開,再執行一次 Homebrew,
Yes!原本的 GitHub API rate exceeded 錯誤訊息消失囉~
testuser@localhost ~ $ brew search phone
headphones
Caskroom/cask/iphone-backup-extractor Caskroom/cask/linphone Caskroom/cask/phonebrowse Caskroom/cask/phonetrans
Caskroom/cask/iphoney Caskroom/cask/makeiphoneringtone Caskroom/cask/phoneclean Caskroom/cask/polyphone
Caskroom/cask/juicephone Caskroom/cask/myphonedesktop Caskroom/cask/phonerescue