GitHub CLI で複数のアカウントを簡単にスイッチ可能になりました
こんにちは、CX 事業本部 Delivery 部の若槻です。
このたびの GitHub CLI アップデートにより、gh
コマンドで複数のアカウントを簡単にスイッチできるようになりました。
試してみた
GitHub CLI のアップデート
複数アカウント機能は、バージョン 2.40.0 でサポートされました。
brew upgrade gh
コマンドで GitHub CLI を最新版にアップデートすることができます。
brew upgrade gh
ログイン状態の確認
現在どのアカウントでログインしているのか(ログイン状態)は gh auth status
コマンドで確認できます。
$ gh auth status github.com ✓ Logged in to github.com account cm-rwakatsuki (keyring) - Active account: true - Git operations protocol: https - Token: gho_************************************ - Token scopes: 'gist', 'read:org', 'repo', 'workflow'
現在は cm-rwakatsuki
アカウントのみでログインしていることがわかります。
GitHub.com で追加のアカウントにログイン
CLI で追加のアカウントにログインするには、事前に GitHub.com(ブラウザ)でそのアカウントにログインしておく必要があります。
GitHub.com での複数アカウントのログインは一ヶ月ほど前にサポートされました。
次のように CLI で追加したいアカウントを GitHub.com でもログインしておきます。
CLI で追加のアカウントでログイン
GitHub CLI で追加のアカウントでログインするには、gh auth login
コマンドを実行します。
するとブラウザでのログインを求められるのですが、その際に GitHub.com で複数アカウントでログインしている場合は、CLI でどのアカウントでログインするかを選択できます。
選択したアカウントでログインします。
ログイン成功後、r-wakatsuki
および cm-rwakatsuki
の 2 つのアカウントでログインできました。
$ gh auth status github.com ✓ Logged in to github.com account r-wakatsuki (keyring) - Active account: true - Git operations protocol: https - Token: gho_************************************ - Token scopes: 'gist', 'read:org', 'repo', 'workflow' ✓ Logged in to github.com account cm-rwakatsuki (keyring) - Active account: false - Git operations protocol: https - Token: gho_************************************ - Token scopes: 'gist', 'read:org', 'repo', 'workflow'
この時、Active account が true
になっているアカウントがアクティブなログインとなります。上記では先程ログインした r-wakatsuki
がアクティブとなっています。CLI は認証情報はアクティブなアカウントのものが使われます。
アクティブなログインの切り替え
GitHub CLI でアクティブなログインを切り替えるには、gh auth switch
コマンドを実行します。
$ gh auth switch ✓ Switched active account for github.com to cm-rwakatsuki
アクティブなアカウントが cm-rwakatsuki
に切り替えられました。
$ gh auth status github.com ✓ Logged in to github.com account cm-rwakatsuki (keyring) - Active account: true - Git operations protocol: https - Token: gho_************************************ - Token scopes: 'gist', 'read:org', 'repo', 'workflow' ✓ Logged in to github.com account r-wakatsuki (keyring) - Active account: false - Git operations protocol: https - Token: gho_************************************ - Token scopes: 'gist', 'read:org', 'repo', 'workflow'
ログアウト
gh auth logout
コマンドを使うことにより、個別のアカウントからログアウトすることができます。
$ gh auth logout ? What account do you want to log out of? r-wakatsuki (github.com) ✓ Logged out of github.com account r-wakatsuki
r-wakatsuki
アカウントからログアウトできました。
$ gh auth status github.com ✓ Logged in to github.com account cm-rwakatsuki (keyring) - Active account: true - Git operations protocol: https - Token: gho_************************************ - Token scopes: 'gist', 'read:org', 'repo', 'workflow'
おわりに
GitHub CLI で複数のアカウントを簡単にスイッチ可能になったのでご紹介しました。
今までは複数アカウントをサポートしているのは GitHub.com だけだったので片手落ちの感があったのですが、今後は CLI でもわざわざ再ログインをすることなく複数のアカウントを切り替えられるようになりました。業務や OSS コントリビュートをする際に CLI を使う方は多いと思うので助かる方は多いのではないでしょうか。
以上