Skip to main content

サーバー間認証

サービスがユーザーの資格情報なしで組織に代わってCopilot要求を行う必要がある場合は、有効期間の短いインストール アクセス トークンを使用します。 GitHub Actionsでは、代わりに組み込みのGITHUB_TOKENを使用します。

GitHub Actions

組織所有のリポジトリ内のワークフローの場合は、Copilot要求を行うアクセス許可を組み込みのトークンに付与します。

permissions:
  contents: read
  copilot-requests: write

jobs:
  copilot:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: your-application
        env:
          GITHUB_TOKEN: $

組織のポリシーに対して課金される Copilot CLI の使用を許可する必要があります。 この方法では、GitHubアプリや保存された認証シークレットは必要ありません。 詳細については、「GitHub Actions で GITHUB_TOKEN を使って Copilot CLI を使用する」を参照してください。

その他のサービスと CI システム

GitHub Actions外のサービスの場合:

  1. Copilot要求リポジトリのアクセス許可が読み取りと書き込みに設定されたGitHub アプリを作成します。

  2. 課金対象の組織にインストールします。 現在のCopilotアクセス許可チェックでは 、すべてのリポジトリアクセスが必要です

  3. リポジトリ ID とCopilotアクセス許可を持つ GitHub アプリのインストール アクセス トークンの生成:

    {
      "repository_ids": [123456789],
      "permissions": {
        "copilot_requests": "write"
      }
    }
    
  4. 結果の ghs_ トークンを COPILOT_GITHUB_TOKENとしてランタイムに渡します。

組織は、GitHub アプリのインストールからのCopilot要求に対して有効にする必要があります。 インストール トークンは 1 時間後に期限切れになります。

警告

SDK の gitHubTokengithub_token、または同等のオプションを介してインストール トークンを渡さないでください。 このオプションは、ユーザー トークン用です。 インストール トークンでは、ランタイム環境の認証パスを使用する必要があります。

ランタイムを構成する

次の例では、作成されたトークンが INSTALLATION_TOKEN内にあるものとします。 子ランタイムにのみ渡し、保存されているユーザー資格情報へのフォールバックを無効にします。

コード言語 navigation

TypeScript
import { CopilotClient, RuntimeConnection } from "@github/copilot-sdk";

const token = process.env.INSTALLATION_TOKEN;
if (!token) throw new Error("INSTALLATION_TOKEN is required");

const client = new CopilotClient({
    connection: RuntimeConnection.forStdio(),
    env: {
        ...process.env,
        COPILOT_GITHUB_TOKEN: token,
    },
    useLoggedInUser: false,
});

インプロセス FFIは、ランタイムを読み込む前にホスト環境で COPILOT_GITHUB_TOKEN を設定します。クライアントごとの環境オプションはサポートされていません。 既存のランタイム URIは、そのランタイム プロセスに設定します。

更新トークン

現在のトークンの有効期限が切れる前に、新しいインストール トークンを作成します。 子プロセスの場合は、新しい環境で SDK クライアントを再起動します。 インプロセスまたは既存のランタイムの場合は、新しいトークンを使用してホスト ランタイムを再起動します。

Billing

使用状況は、GitHub アプリのインストールを所有するアカウントに属性付けされ、課金されます。 組織のインストールを組織の課金に使用する。ユーザー アカウントのインストール属性は、そのユーザーの使用状況を示します。

Troubleshooting

症状検査
401 Unauthorized組織がCopilotのアプリ インストール認証GitHubサポートを確認します。
403 Resource not accessible by integration または、ユーザー情報のメンション中にエラーが発生しましたSDK の明示的なトークン オプションではなく、インストール トークンが COPILOT_GITHUB_TOKENであることを確認します。
403 ForbiddenCopilot API からトークン要求に repository_idscopilot_requests: writeが含まれていることを確認します。
403 Forbidden 必要なトークン要求を含むアプリのインストールに [すべてのリポジトリ] アクセス権があることを確認し、新しいトークンを作成します。
要求されたモデルは使用できません組織のCopilot ポリシーでモデルが許可され、バンドルされたランタイムがモデルをサポートすることを確認します。
誤ったアカウントの請求インストールが目的の組織に属することを確認します。

詳細については、次を参照してください。