🐙

Github CLI で複数の Github アカウントを使い分ける

に公開

複数の企業やプロジェクトにコミットしていると、どうしても複数の Github アカウントを運用することになるかなと思います。
Github CLI を利用すると、複数のアカウントを使い分けることができて便利です。

ログイン

まず Github アカウントへのログイン。

gh auth login

ブラウザを開いて認証する場合、ログインしたい Github アカウントの認証状態を作っておきます。
これを Github アカウントの数だけやる。

確認

すべてログインしたら、現在の状態を確認。

$ gh auth status
github.com
  ✓ Logged in to github.com account xxxxx (keyring)
  - Active account: true
  - Git operations protocol: https
  - Token: gho_************************************
  - Token scopes: 'gist', 'read:org', 'repo', 'workflow'

  ✓ Logged in to github.com account yyyyy (keyring)
  - Active account: false
  - Git operations protocol: https
  - Token: gho_************************************
  - Token scopes: 'gist', 'read:org', 'repo', 'workflow'

上記の例では、 xxxxx と yyyyy という2つのアカウントがログイン済みとなっています。そして xxxxx がアクティブな状態です。

切り替え

切り替えは簡単。

$ gh auth switch

このコマンドで、他のログイン済みアカウントに切り替わります。

レポジトリ一覧

以下のコマンドでレポジトリのリストを表示することができます。

$ gh repo list

しかし表示されるのは自身のレポジトリだけです。
自身が所属する Organization のレポジトリも表示したいときは以下の通り。

$ gh repo list OrganizationName

GithubCLI と git の認証同期

自分の場合、すでにレポジトリをクローンした後に Github CLI を導入しました。
すると、クローン済みのレポジトリにて、git fetch などの操作ができなくなりました。Github CLI ではログイン済みになっているのに何故?!

と思いきや、ローカルの git との認証の同期が必要でした。

$ gh auth setup-git

以上。

Discussion