Skip to main content

GitHub Copilot CLI の認証

Copilot CLI を認証して、コマンド ラインから直接 Copilot を使用できるようにします。

この機能を使用できるユーザーについて

GitHub Copilot CLI(コマンドラインインターフェース) はすべての Copilot プランで利用可能です。 Copilot を organization から受け取る場合は、organization の設定で Copilot CLI ポリシーを有効にする必要があります。

認証について

GitHub Copilot CLI(コマンドラインインターフェース) は、3 つの認証方法をサポートしています。 使用する方法は、対話形式で作業しているか、自動化された環境で作業しているかによって異なります。

  •         **OAuth デバイス フロー**: 対話型で使用するための既定の推奨される方法。 Copilot CLI で `/login` を実行すると、CLI によって 1 回限りのコードが生成され、ブラウザーで認証するように指示されます。 これは認証を行う最も簡単な方法です。
    
  •         **環境変数**: CI/CD パイプライン、コンテナー、非対話型環境に推奨されます。 サポートされているトークンを環境変数 (`COPILOT_GITHUB_TOKEN`、 `GH_TOKEN`、または `GITHUB_TOKEN`) として設定すると、CLI はプロンプトを表示せずに自動的に使用します。
    
  •         **GitHub CLI のフォールバック**: GitHub CLI (`gh`) (注: `gh` ではなく `copilot` CLI) がインストールされ、認証されている場合、Copilot CLI はその CLI のトークンを自動的に使用できます。 これは最も優先度の低い方法であり、他の資格情報が見つからない場合にのみアクティブになります。
    

認証されると、Copilot CLI はログインを記憶し、すべての Copilot API 要求に対してトークンを自動的に使用します。 複数のアカウントでログインでき、CLI は最後に使用したアカウントを記憶します。 トークンの有効期間と有効期限は、アカウントまたは組織の設定でトークンがどのように作成されたかによって異なります。

サポートされているトークンの種類

トークンの種類接頭辞サポートされています注記
OAuth トークン (デバイス フロー)gho_イエス
          `copilot login`を使用した既定のメソッド                     |

| きめ細かいPAT | github_pat_ | イエス | 必要な許可Copilot Requestsを含める必要があります。 | | GitHubアプリのユーザーからサーバーへの通信 | ghu_ | イエス | 環境変数経由で | | クラシック PAT | ghp_ | いいえ | Copilot CLI ではサポートされていません |

Copilot CLI が資格情報を格納する方法

既定では、CLI は OAuth トークンをオペレーティング システムのキーチェーンのサービス名 copilot-cliに格納します。

Platformキーチェーン
macOSキーチェーン アクセス
ウィンドウズ資格情報マネージャー
Linuxlibsecret (GNOME Keyring, KWallet)
          `libsecret`がインストールされていないヘッドレス Linux サーバーなど、システム キーチェーンが使用できない場合、CLI はトークンを`~/.copilot/config.json`のプレーンテキスト構成ファイルに格納するように求めます。

コマンドを実行すると、Copilot CLI は次の順序で資格情報をチェックします。

  1.        `COPILOT_GITHUB_TOKEN` 環境変数
    
  2.        `GH_TOKEN` 環境変数
    
  3.        `GITHUB_TOKEN` 環境変数
    
  4. システム キーチェーンからの OAuth トークン
  5. GitHub CLI (gh auth token) フォールバック

メモ

環境変数は、格納されている OAuth トークンを自動的にオーバーライドします。 別のツール GH_TOKEN 設定した場合、CLI では、 copilot loginからの OAuth トークンの代わりにそのトークンが使用されます。 予期しない動作を回避するために、CLI で使用する予定のない環境変数を設定解除します。

OAuth を使用した認証

OAuth デバイス フローは、対話型で使用するための既定の認証方法です。 Copilot CLI から /login を実行するか、ターミナルから copilot login して認証できます。

          `/login` で認証する
  1. Copilot CLI から/loginを実行してください。

    Bash
    /login
    
  2. 認証するアカウントを選択します。 データ所在地を持つ GitHub Enterprise Cloud には、インスタンスのホスト名を入力します

    What account do you want to log into?
     1. GitHub.com
     2. GitHub Enterprise Cloud with data residency (*.ghe.com)
    
  3. CLI では、1 回限りのユーザー コードが表示され、自動的にクリップボードにコピーされ、ブラウザーが開きます。

    Waiting for authorization...
    Enter one-time code: 1234-5678 at https://github.com/login/device
    Press any key to copy to clipboard and open browser...
    
  4. ブラウザーが自動的に開かなかった場合は、 https://github.com/login/device の確認 URL に移動します。

  5. 1 回限りのコードをページのフィールドに貼り付けます。

  6. 組織で SAML SSO を使用している場合は、アクセス権を付与する各組織の横にある [ 承認 ] をクリックします。

  7. 要求されたアクセス許可を確認し、[ GitHub Copilot CLI の承認] をクリックします。

  8. ターミナルに戻ります。 認証が完了すると、CLI によって成功メッセージが表示されます。

    Signed in successfully as Octocat. You can now use Copilot.
    

          `copilot login` で認証する
  1. ターミナルから、 copilot loginを実行します。 GitHub Enterprise Cloud をデータ所在地と共に使用している場合は、インスタンスのホスト名を渡します。

    Bash
    copilot login
    

    GitHub Enterprise Cloud の場合:

    Bash
    copilot login --host HOSTNAME
    

    CLI では、1 回限りのユーザー コードが表示され、自動的にクリップボードにコピーされ、ブラウザーが開きます。

    To authenticate, visit https://github.com/login/device and enter code 1234-5678.
    
  2. ブラウザーが自動的に開かなかった場合は、 https://github.com/login/device の確認 URL に移動します。

  3. 1 回限りのコードをページのフィールドに貼り付けます。

  4. 組織で SAML SSO を使用している場合は、アクセス権を付与する各組織の横にある [ 承認 ] をクリックします。

  5. 要求されたアクセス許可を確認し、[ GitHub Copilot CLI の承認] をクリックします。

  6. ターミナルに戻ります。 認証が完了すると、CLI によって成功メッセージが表示されます。

    Signed in successfully as Octocat.
    

環境変数を使用した認証

非対話型環境の場合は、サポートされているトークンを使用して環境変数を設定することで認証できます。 これは、CI/CD パイプライン、コンテナー、またはヘッドレス サーバーに最適です。

  1.        [Fine-grained personal access tokens](https://github.com/settings/personal-access-tokens/new) にアクセスしてください。
    
  2. アクセス許可で アクセス許可の追加 をクリックし、Copilot 要求 を選択します。
  3.        **[トークンの生成]** をクリックします。
    
  4. ターミナルまたは環境の構成でトークンをエクスポートします。 COPILOT_GITHUB_TOKENGH_TOKEN、または環境変数GITHUB_TOKEN (優先順位順) を使用します。

GitHub CLI を使用した認証

GitHub CLI がインストールされ、認証されている場合、Copilot CLI はそのトークンをフォールバックとして使用できます。 このメソッドの優先度は最も低く、環境変数が設定されておらず、格納されているトークンが見つからない場合にのみアクティブになります。

  1. GitHub CLI が認証されているか確認してください。

    Bash
    gh auth status
    

    GitHub Enterprise Cloud をデータ所在地と共に使用する場合は、正しいホスト名が認証されていることを確認します。

    Bash
    gh auth status --hostname HOSTNAME
    
  2.        `copilot` を実行します。 Copilot CLI では、GitHub CLI トークンが自動的に使用されます。
    
  3.        `/user`を実行して、CLI で認証されたアカウントを確認します。
    

アカウント間の切り替え

Copilot CLI では、複数のアカウントがサポートされます。 使用可能なアカウントを一覧表示し、CLI 内から切り替えることができます。 使用可能なアカウントを一覧表示するには、Copilot CLI のプロンプトで /user list を実行します。 別のアカウントに切り替えるには、プロンプトに「 /user switch 」と入力します。

別のアカウントを追加するには、新しいターミナル セッションから copilot login を実行するか、CLI 内からログイン コマンドを実行して、もう一方のアカウントで承認します。

サインアウトして資格情報を削除する

サインアウトするには、Copilot CLI プロンプトに「 /logout 」と入力します。 これにより、ローカルに格納されたトークンは削除されますが、GitHub では取り消されません。

GitHub で OAuth アプリの承認を取り消し、他の場所で使用されないようにするには、次の手順に従います。

  1.        **設定** > **Applications** > **Authorized OAuth Apps** に移動します。
    
  2. 設定ページに移動します。
    1. GitHub の任意のページの右上隅にある、自分のプロフィール写真をクリックします。
    2.     **[設定]** をクリックします。
      
  3. 左側のサイドバーで、[ アプリケーション] をクリックします。
  4.        **[Authorized OAuth Apps**] で、**GitHub CLI** の横にある <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="The horizontal kebab icon" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg> をクリックしてメニューを展開し、[**取り消し**] を選択します。