Organization にインストールした GitHub App が、サインイン済みユーザー資格なしで GitHub Copilot SDK から Copilot リクエストを送れる public preview。エージェントや自動サービスは workload 所有の identity で動き、個人ユーザーへの認証・利用量の紐づけを避けられる。利用量の帰属先と課金先はインストール先 organization。当該 organization のモデルポリシー、予算、支出コントロールが適用される。

#GitHub Actions

Organization 所有リポジトリの workflow では GitHub App を置かず、組み込み GITHUB_TOKEN を使う。

  • workflow の permissions に copilot-requests: write を付与
  • 実行環境へ GITHUB_TOKEN を渡して Copilot SDK を起動
  • Organization の「Allow use of Copilot CLI billed to the organization」ポリシーが有効であること

#GitHub App(Actions 以外)

  1. Organization 権限 Copilot Requests を Read-only にした GitHub App を作成
  2. 利用量を帰属させたい organization にインストール
  3. App 用 JWT で REST POST /app/installations/{installation_id}/access_tokens を呼び、ボディに permissions.organization_copilot_requests: read を指定して installation access token(接頭辞 ghs_)を取得。有効期限は 1 時間
  4. インストール ID は GET /orgs/{org}/installation など GitHub Apps 向け REST で取得

Organization が GitHub App installation からの Copilot リクエストを受け付ける設定であること。個人アカウントや enterprise インストールではこの認証経路は使えない。

#Copilot SDK

  • 取得した installation access token を gitHubToken(言語により github_token 等)へ渡す
  • useLoggedInUser: false で環境変数や保存済みユーザー資格へのフォールバックを切る
  • 子プロセス runtime では token を SDK の明示オプションのみで渡す。URI 接続の既存 runtime では runtime プロセス側に COPILOT_GITHUB_TOKEN を設定する運用もある
  • 失効前に新しい installation access token を発行し、クライアントまたは runtime を再起動して差し替え

#Organization 側の可視性

Organization owner は Copilot 利用権を持つ App を確認できる。AI usage CSV では app_client_id で App 帰属の利用を識別できる。特定 App の Copilot 利用を止めるには、当該 organization インストールを suspend または uninstall する。

#参考文献