事象 : アプリを検索したらなんか言われた
$ brew search docker
Warning: Error searching on GitHub: GitHub API Error: Bad credentials
The GitHub credentials in the macOS keychain may be invalid.
Clear them with:
printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
Create a GitHub personal access token:
https://github.com/settings/tokens/new?scopes=gist,public_repo,workflow&description=Homebrew
echo 'export HOMEBREW_GITHUB_API_TOKEN=your_token_here' >> ~/.zshrc
==> Formulae
# ...省略...
原因 : GitHubの認証情報が無効だから?
メッセージを愚直に訳してみると
警告:GitHubでの検索エラー:
GitHub APIエラー:不正な認証情報
macOSキーチェーンのGitHub認証情報が無効である可能性があります。
HomebrewでGitをインストールすると「httpsを使用するときの認証情報を保存する」ようになるらしい。
参考 : 【Mac】gitでパスワードを毎回聞かれたく無い
# 認証情報がキャッシュされるように設定されている
$ git config --system -l
credential.helper=osxkeychain
# credential-osxkeychainサブコマンドは使えるようになっている
$ git credential-osxkeychain
usage: git credential-osxkeychain <get|store|erase>
それとも自分でgit-credential-manager — Homebrew Formulaeをインストールして設定でもしたのだろうか?
Mac を使っているなら、Git の “osxkeychain” モードが使えます。これを使うと、OS のキーチェーン(システムアカウントと紐づく)に認証情報がキャッシュされます。 このモードでも認証情報がディスクに保存され、有効期限切れもありません。ただし先ほどとは違い、保存内容は暗号化(HTTPS 証明書や Safari の自動入力の暗号化と同じ仕組み)されます。
Git - 認証情報の保存
対応 : 保存された認証情報をクリアする
メッセージに言われた通りのコマンドを使って認証情報をクリアする。
# プロトコルが「https」でホストが「github.com」の認証情報をクリアする
$ printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
# 次は何も言われなくなった
$ brew search docker
==> Formulae
# ...省略...