認証について
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 | キーチェーン アクセス |
| ウィンドウズ | 資格情報マネージャー |
| Linux | libsecret (GNOME Keyring, KWallet) |
`libsecret`がインストールされていないヘッドレス Linux サーバーなど、システム キーチェーンが使用できない場合、CLI はトークンを`~/.copilot/config.json`のプレーンテキスト構成ファイルに格納するように求めます。
コマンドを実行すると、Copilot CLI は次の順序で資格情報をチェックします。
-
`COPILOT_GITHUB_TOKEN` 環境変数 -
`GH_TOKEN` 環境変数 -
`GITHUB_TOKEN` 環境変数 - システム キーチェーンからの OAuth トークン
- GitHub CLI (
gh auth token) フォールバック
メモ
環境変数は、格納されている OAuth トークンを自動的にオーバーライドします。 別のツール GH_TOKEN 設定した場合、CLI では、 copilot loginからの OAuth トークンの代わりにそのトークンが使用されます。 予期しない動作を回避するために、CLI で使用する予定のない環境変数を設定解除します。
OAuth を使用した認証
OAuth デバイス フローは、対話型で使用するための既定の認証方法です。 Copilot CLI から /login を実行するか、ターミナルから copilot login して認証できます。
`/login` で認証する
-
Copilot CLI から
/loginを実行してください。Bash /login
/login -
認証するアカウントを選択します。 データ所在地を持つ GitHub Enterprise Cloud には、インスタンスのホスト名を入力します
What account do you want to log into? 1. GitHub.com 2. GitHub Enterprise Cloud with data residency (*.ghe.com) -
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... -
ブラウザーが自動的に開かなかった場合は、
https://github.com/login/deviceの確認 URL に移動します。 -
1 回限りのコードをページのフィールドに貼り付けます。
-
組織で SAML SSO を使用している場合は、アクセス権を付与する各組織の横にある [ 承認 ] をクリックします。
-
要求されたアクセス許可を確認し、[ GitHub Copilot CLI の承認] をクリックします。
-
ターミナルに戻ります。 認証が完了すると、CLI によって成功メッセージが表示されます。
Signed in successfully as Octocat. You can now use Copilot.
`copilot login` で認証する
-
ターミナルから、
copilot loginを実行します。 GitHub Enterprise Cloud をデータ所在地と共に使用している場合は、インスタンスのホスト名を渡します。Bash copilot login
copilot loginGitHub Enterprise Cloud の場合:
Bash copilot login --host HOSTNAME
copilot login --host HOSTNAMECLI では、1 回限りのユーザー コードが表示され、自動的にクリップボードにコピーされ、ブラウザーが開きます。
To authenticate, visit https://github.com/login/device and enter code 1234-5678. -
ブラウザーが自動的に開かなかった場合は、
https://github.com/login/deviceの確認 URL に移動します。 -
1 回限りのコードをページのフィールドに貼り付けます。
-
組織で SAML SSO を使用している場合は、アクセス権を付与する各組織の横にある [ 承認 ] をクリックします。
-
要求されたアクセス許可を確認し、[ GitHub Copilot CLI の承認] をクリックします。
-
ターミナルに戻ります。 認証が完了すると、CLI によって成功メッセージが表示されます。
Signed in successfully as Octocat.
環境変数を使用した認証
非対話型環境の場合は、サポートされているトークンを使用して環境変数を設定することで認証できます。 これは、CI/CD パイプライン、コンテナー、またはヘッドレス サーバーに最適です。
-
[Fine-grained personal access tokens](https://github.com/settings/personal-access-tokens/new) にアクセスしてください。 - アクセス許可で アクセス許可の追加 をクリックし、Copilot 要求 を選択します。
-
**[トークンの生成]** をクリックします。 - ターミナルまたは環境の構成でトークンをエクスポートします。
COPILOT_GITHUB_TOKEN、GH_TOKEN、または環境変数GITHUB_TOKEN(優先順位順) を使用します。
GitHub CLI を使用した認証
GitHub CLI がインストールされ、認証されている場合、Copilot CLI はそのトークンをフォールバックとして使用できます。 このメソッドの優先度は最も低く、環境変数が設定されておらず、格納されているトークンが見つからない場合にのみアクティブになります。
-
GitHub CLI が認証されているか確認してください。
Bash gh auth status
gh auth statusGitHub Enterprise Cloud をデータ所在地と共に使用する場合は、正しいホスト名が認証されていることを確認します。
Bash gh auth status --hostname HOSTNAME
gh auth status --hostname HOSTNAME -
`copilot` を実行します。 Copilot CLI では、GitHub CLI トークンが自動的に使用されます。 -
`/user`を実行して、CLI で認証されたアカウントを確認します。
アカウント間の切り替え
Copilot CLI では、複数のアカウントがサポートされます。 使用可能なアカウントを一覧表示し、CLI 内から切り替えることができます。 使用可能なアカウントを一覧表示するには、Copilot CLI のプロンプトで /user list を実行します。 別のアカウントに切り替えるには、プロンプトに「 /user switch 」と入力します。
別のアカウントを追加するには、新しいターミナル セッションから copilot login を実行するか、CLI 内からログイン コマンドを実行して、もう一方のアカウントで承認します。
サインアウトして資格情報を削除する
サインアウトするには、Copilot CLI プロンプトに「 /logout 」と入力します。 これにより、ローカルに格納されたトークンは削除されますが、GitHub では取り消されません。
GitHub で OAuth アプリの承認を取り消し、他の場所で使用されないようにするには、次の手順に従います。
-
**設定** > **Applications** > **Authorized OAuth Apps** に移動します。 - 設定ページに移動します。
- GitHub の任意のページの右上隅にある、自分のプロフィール写真をクリックします。
-
**[設定]** をクリックします。
- 左側のサイドバーで、[ アプリケーション] をクリックします。
-
**[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> をクリックしてメニューを展開し、[**取り消し**] を選択します。