LoginSignup
1
0

More than 1 year has passed since last update.

Warning: Error searching on GitHub: GitHub API Error: Bad credentials The GitHub credentials in the macOS keychain may be invalid.

Posted at

事象 : アプリを検索したらなんか言われた

$ 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
# ...省略...
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0