GitHub Copilot cloud agentのsecrets/variables変更点まとめ|管理者が確認すべき設定と移行ポイント

GitHub Copilot cloud agentを複数リポジトリで使っている組織にとって、2026年5月8日の「More flexible secrets and variables for Copilot cloud agent」は、運用負荷をかなり下げる更新です。結論から言うと、Copilot cloud agent向けのsecretsとvariablesを、GitHub Actionsのcopilot環境ではなく、専用の「Agents」設定として管理できるようになりました。さらに、組織レベルで共通設定を作成し、対象リポジトリへ共有できるようになった点が大きな変更です。(The GitHub Blog)

これまでリポジトリごとに同じトークンやMCPサーバー設定を登録していた場合、今後は「全リポジトリで共通化するもの」と「個別リポジトリだけに置くもの」を分けて整理するのが重要です。特に、内部パッケージレジストリ、社内API、MCPサーバー、copilot-setup-steps.ymlで使う環境変数を扱うチームは、設定場所とアクセス範囲を早めに見直しておきましょう。

目次

GitHub Copilot cloud agentのsecretsとvariablesで何が変わったのか

今回の変更では、Copilot cloud agent専用のsecretsとvariablesが「Agents」という独立した種類として追加されました。これは、既存のActions、Codespaces、Dependabot向けsecrets/variablesとは別枠で管理されます。(The GitHub Blog)

変更前は、Copilot cloud agentに渡すsecretsやvariablesを、各リポジトリのGitHub Actions設定内にあるcopilot環境へ登録する必要がありました。そのため、複数リポジトリで同じ内部パッケージレジストリ用トークンやMCPサーバー設定を使う場合でも、リポジトリ単位で重複登録する必要がありました。(The GitHub Blog)

変更後は、組織レベルでAgents secrets/variablesを作成し、すべてのリポジトリ、private/internalリポジトリ、または選択したリポジトリだけに共有できます。リポジトリ単位の設定も、Actions設定とは分離された専用の「Agents」セクションで管理します。(The GitHub Blog)

項目変更前変更後
設定場所各リポジトリのActions設定内のcopilot環境リポジトリまたは組織の「Secrets and variables > Agents」
組織レベル管理利用不可利用可能
複数リポジトリへの共有リポジトリごとに個別設定が必要組織レベルから対象リポジトリを選んで共有可能
Actions用secretsとの関係Actions設定内で扱っていたAgents専用枠としてActions/Codespaces/Dependabotと分離
管理しやすさ大規模展開では重複管理になりやすい共通設定と個別設定を分けやすい

Copilot cloud agentとは何をする機能なのか

Copilot cloud agentは、開発者が依頼したタスクをGitHub上でバックグラウンド実行するエージェントです。GitHubの公式説明では、タスクを委任すると、Copilot cloud agentはGitHub Actionsを基盤とする独自の一時的な開発環境で作業します。(The GitHub Blog)

この開発環境でビルド、テスト、依存関係のインストール、MCPサーバー経由の外部ツール連携などを行うには、必要な認証情報や環境変数を渡す必要があります。たとえば、次のような用途です。

  • private npm registryや社内パッケージレジストリへアクセスする
  • Sentry、Azure DevOps、Cloudflareなど外部サービスのMCPサーバーを利用する
  • copilot-setup-steps.ymlで依存関係を事前インストールする
  • テスト実行時に必要な非機密の設定値を渡す
  • APIキーやトークンをMCPサーバーに渡す

ここで重要なのは、Copilot cloud agentが通常のGitHub Actions secrets、Codespaces secrets、Dependabot secretsをそのまま参照するわけではない点です。GitHub Docsでは、Copilot cloud agentに渡されるのはAgents secrets/variablesのみであり、Actions、Codespaces、Dependabotのsecrets/variablesにはアクセスしないと説明されています。(GitHub Docs)

管理者にとっての一番大きなメリットは「共通設定の集約」

今回の更新で最も恩恵を受けるのは、複数のリポジトリを管理しているOrganization管理者です。

たとえば、20個のリポジトリで共通の社内パッケージレジストリを使っている場合、以前は各リポジトリに同じトークンを登録し、ローテーション時にも20箇所を更新する必要がありました。これでは、設定漏れ、古いトークンの残存、権限過多の温床になりがちです。

今後は、組織レベルのAgents secretとして共通トークンを1つ登録し、対象リポジトリを選んで共有できます。GitHubの公式発表でも、内部パッケージレジストリのトークンや共通MCPサーバー設定を多数のリポジトリへ展開しやすくなる点が例として挙げられています。(The GitHub Blog)

ただし、「組織レベルで作れるようになったから、すべてを組織レベルへ移す」のはおすすめできません。共通化すべきものと、リポジトリ固有にすべきものを分ける必要があります。

設定の種類推奨される配置理由
全リポジトリ共通の内部レジストリURL組織レベルのvariable機密ではなく、共通利用しやすい
全社共通の読み取り専用パッケージトークン組織レベルのsecretローテーション対象を集約できる
特定サービスの本番APIキー原則として慎重に検討。必要なら対象リポジトリを限定影響範囲が大きく、権限過多になりやすい
リポジトリ固有の検証用トークンリポジトリレベルのsecret他リポジトリへ共有する必要がない
MCPサーバー用のAPIキーCOPILOT_MCP_接頭辞付きのAgents secretMCP設定で参照するには接頭辞が必要

管理画面での設定場所

リポジトリレベルで設定する場合は、対象リポジトリのSettingsから、Securityセクションの「Secrets and variables」を開き、「Agents」を選択します。リポジトリ単位のAgents secrets/variablesを設定するには、リポジトリ管理者権限が必要です。(GitHub Docs)

組織レベルで設定する場合は、OrganizationのSettingsから、Securityセクションの「Secrets and variables」を開き、「Agents」を選択します。組織レベルのAgents secrets/variablesを設定するには、Organization owner権限が必要です。(GitHub Docs)

組織レベルでは、Repository accessとして次の範囲を選べます。

Repository access意味使いどころ
All repositories組織内のすべてのリポジトリから利用可能全社共通で安全に共有できる非機密設定や低権限トークン
Private repositoriesprivate/internalリポジトリから利用可能公開リポジトリには渡したくない内部向け設定
Selected repositories指定したリポジトリだけ利用可能権限を絞りたいAPIキー、MCPサーバー、部署別設定

セキュリティを重視するなら、最初からAll repositoriesを選ぶのではなく、Selected repositoriesで小さく始めるのが安全です。特に、外部サービスのAPIキーや書き込み権限を持つトークンは、必要なリポジトリだけに限定しましょう。

既存設定の移行で確認すべきこと

過去に各リポジトリのGitHub Actions設定でcopilot環境にsecretsやvariablesを登録していた場合、それらは新しいリポジトリレベルのAgents typeへ自動移行されます。GitHub Docsでは、このケースではユーザー側の作業は不要で、今後は新しい場所から管理できると説明されています。(GitHub Docs)

ただし、実務では「自動移行されたから確認不要」とは考えないほうが安全です。特に、組織で複数リポジトリを管理している場合は、次の観点で棚卸しを行いましょう。

確認項目見るべきポイント放置した場合のリスク
旧copilot環境の設定が移行されているかリポジトリのAgentsセクションに値があるかCopilot cloud agentがビルドやテストで失敗する
同じ名前のsecret/variableが複数レベルにないか組織レベルとリポジトリレベルの重複意図しない値が優先される
不要なトークンが残っていないか使われていないsecretの削除候補退職者・旧システム・旧権限の残存
共通化できる設定がないかレジストリURL、読み取り専用トークン、MCP共通設定更新作業がリポジトリ数分だけ増える
権限が広すぎないかAll repositoriesにする必要があるかCopilot cloud agentに不要なアクセス権を渡す

特に注意したいのは、同じ名前のsecretまたはvariableが複数レベルに存在する場合です。GitHub Docsでは、同じ名前が複数レベルにある場合、より低いレベルの値が優先されると説明されています。たとえば、リポジトリレベルのsecretは、同名の組織レベルsecretを上書きします。(GitHub Docs)

secretsとvariablesの使い分け

Agents secretsとAgents variablesは、どちらもCopilot cloud agentの環境に渡すための設定ですが、使い分けを誤るとセキュリティ事故や運用混乱につながります。

基本的には、漏えいしたら困る値はsecret、公開されても大きな問題にならない設定値はvariableとして扱います。

種類使う値の例判断基準
secretAPIキー、アクセストークン、レジストリの認証トークン、PAT値を見られると不正アクセスにつながる
variableレジストリURL、環境名、機能フラグ、タイムアウト値値自体に認証能力がない
MCP用secretCOPILOT_MCP_SENTRY_ACCESS_TOKENなどMCPサーバー認証に使う機密情報
MCP用variableCOPILOT_MCP_REGIONなどMCP設定で参照する非機密値

GitHub Docsでは、設定されたAgents secrets/variablesは、原則としてCopilot cloud agentの開発環境で環境変数として利用できると説明されています。ただし、COPILOT_MCP_で始まるものはMCPサーバー向けに利用されます。(GitHub Docs)

また、secretの値はCopilot cloud agentのセッションログでマスクされます。とはいえ、ログでマスクされるから安全という考え方は危険です。値を渡した時点で、agentが実行するツールやスクリプトから利用可能になるため、最小権限のトークンを使うことが前提です。(GitHub Docs)

MCPサーバーを使う場合の注意点

MCPサーバーをCopilot cloud agentと連携しているチームは、今回の変更を特に確認すべきです。

GitHub Docsでは、MCPサーバーが変数、キー、secretを必要とする場合、COPILOT_MCP_で始まる名前のAgents secretまたはvariableを追加する必要があると説明されています。COPILOT_MCP_で始まるAgents secrets/variablesだけがMCP設定で利用可能です。(GitHub Docs)

たとえば、SentryのMCPサーバーにアクセストークンを渡すなら、次のような名前にします。

COPILOT_MCP_SENTRY_ACCESS_TOKEN

MCP設定側では、次のように参照します。

{
  "mcpServers": {
    "sentry": {
      "type": "local",
      "command": "npx",
      "args": ["@sentry/mcp-server@latest"],
      "tools": ["*"],
      "env": {
        "SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN"
      }
    }
  }
}

ここでの失敗しやすいポイントは、通常の環境変数名とMCP向けの名前を混同することです。たとえば、SENTRY_ACCESS_TOKENというAgents secretを作っても、MCP設定で参照するsecretとしては不十分です。MCP設定で使う参照名はCOPILOT_MCP_で始まっている必要があります。(GitHub Docs)

もう一つの重要な注意点は、MCPサーバーのツール権限です。GitHub Docsでは、MCPサーバーを設定するとCopilotがサーバーのツールを自律的に利用でき、使用前にユーザー承認を求めないと説明されています。そのため、MCP設定では可能な限り読み取り専用ツールや必要なツールだけを許可するのが安全です。(GitHub Docs)

copilot-setup-steps.ymlを使うリポジトリで確認すること

Copilot cloud agentの開発環境をカスタマイズしている場合、.github/workflows/copilot-setup-steps.ymlもあわせて確認しましょう。

GitHub Docsでは、Copilotの環境をカスタマイズするには、リポジトリ内の.github/workflows/copilot-setup-steps.ymlに専用のGitHub Actionsワークフローファイルを作成すると説明されています。このファイルの中で、依存関係のインストールやツールの準備などを行えます。(GitHub Docs)

ただし、このワークフローにはいくつかの条件があります。

確認項目内容
ファイル配置.github/workflows/copilot-setup-steps.yml
ブランチdefault branchに存在しないとCopilot用に実行されない
ジョブ名copilot-setup-stepsである必要がある
権限必要最小限のpermissionsを設定する
失敗時の挙動setup stepが失敗すると、残りのsetup stepはスキップされ、現在の環境状態で作業が始まる

たとえば、private package registryから依存関係を取得するためにトークンを使う場合、そのトークンはActions secretsではなくAgents secretとして登録されている必要があります。ここを誤ると、通常のGitHub Actionsワークフローでは成功するのに、Copilot cloud agentでは依存関係のインストールに失敗する、という分かりにくい問題が起きます。

命名ルールと優先順位

Agents secrets/variablesには命名ルールがあります。GitHub Docsでは、名前には英数字とアンダースコアのみ使用でき、スペースは使えず、GITHUB_で始めることも、数字で始めることもできないと説明されています。また、名前は大文字・小文字を区別せず、小文字は大文字へ変換されます。(GitHub Docs)

実務では、次のような命名ルールをチーム内で統一しておくと管理しやすくなります。

用途命名例ポイント
内部npmレジストリのURLNPM_REGISTRY_URL非機密ならvariableでよい
npm認証トークンNPM_READ_TOKENsecretとして管理
MCP用SentryトークンCOPILOT_MCP_SENTRY_ACCESS_TOKENMCPで使うため接頭辞が必須
MCP用GitHub PATCOPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN権限を必要最小限にする
環境名APP_ENVproductionなどの値を渡す場合に使う

避けたいのは、TOKENやAPI_KEYのような曖昧すぎる名前です。リポジトリ単位では問題がなくても、組織レベルへ広げると用途が分からなくなります。SERVICE_PURPOSE_SCOPEのように、サービス名、用途、権限範囲が分かる名前にすると、後から棚卸ししやすくなります。

開発者への影響

開発者側の主な影響は、Copilot cloud agentが利用する認証情報の置き場所が明確になることです。

これまで、Copilot cloud agentで依存関係の解決に失敗した場合、「GitHub Actionsのsecretは設定しているのに、なぜCopilotでは使えないのか」と混乱することがありました。今回の変更後は、Copilot cloud agent用の設定はAgentsに置く、という切り分けがしやすくなります。

開発者が確認すべきポイントは次のとおりです。

  • Copilot cloud agentで使う値がActions secretsではなくAgents secrets/variablesに登録されているか
  • copilot-setup-steps.yml内で参照する環境変数名と、Agents側の名前が一致しているか
  • MCPサーバーで使う値にCOPILOT_MCP_接頭辞が付いているか
  • リポジトリ固有の値を組織レベルの共通値で上書きしていないか
  • Copilot cloud agentのセッションログでsetup stepの失敗が出ていないか

特に、ローカル環境や通常のCIでは成功するのに、Copilot cloud agentだけ失敗する場合は、まずAgents secrets/variablesの設定漏れを疑うとよいでしょう。

管理者が取るべき展開手順

組織で安全に展開するなら、いきなり全リポジトリに適用するのではなく、次の順で進めるのがおすすめです。

手順作業内容判断基準
1Copilot cloud agentを使うリポジトリを洗い出す利用中・検証中・未利用を分ける
2既存のAgents secrets/variablesを確認する自動移行された旧copilot環境の設定を含める
3共通化できる値を分類するレジストリ、MCP、共通ツール設定など
4組織レベルへ移す候補を決める全体共有しても安全か、権限が広すぎないかを見る
5Selected repositoriesで小規模に展開する最初は重要度の低い検証リポジトリで試す
6Copilot cloud agentの実行ログを確認する依存関係、MCP接続、setup stepの失敗を確認
7問題なければ対象リポジトリを広げるAll repositoriesは最後に検討する

この順序で進めると、設定漏れや権限過多を見つけやすくなります。特に、組織レベルのsecretは便利ですが、対象範囲を広げすぎると、意図しないリポジトリのCopilot cloud agentにも値が渡る可能性があります。

セキュリティ面で注意すべきポイント

Copilot cloud agentはバックグラウンドで作業するため、開発者が毎回すべてのコマンド実行を目視するわけではありません。そのため、secrets/variablesの設計では「便利さ」よりも「権限の絞り込み」を優先すべきです。

特に重要なのは次の点です。

注意点実務での対策
書き込み権限のあるトークンを広く共有しない読み取り専用トークンを基本にする
本番環境のsecretを安易に渡さない検証用・限定スコープの認証情報を使う
MCPサーバーのツールを広く許可しすぎないtools: ["*"]は慎重に使い、可能なら個別指定する
組織レベルsecretの対象範囲を広げすぎないSelected repositoriesから始める
同名secretの優先順位を把握しないまま運用しない組織レベルとリポジトリレベルの命名を棚卸しする
ローテーション手順を決めない更新担当者、影響リポジトリ、確認方法を文書化する

便利になったからこそ、設定ミスの影響範囲も広がります。組織レベルで共通化する値は、できるだけ低権限・短寿命・用途限定にしておくのが現実的です。

よくある失敗例

Actions secretsに登録したのにCopilot cloud agentで使えない

Copilot cloud agentはActions secrets/variablesをそのまま参照しません。Agents secrets/variablesに登録する必要があります。通常のCIでは成功するのにCopilot cloud agentだけ失敗する場合、この設定場所の違いが原因になりやすいです。(GitHub Docs)

MCP用のsecret名にCOPILOT_MCP_を付け忘れる

MCP設定で参照するsecretやvariableは、COPILOT_MCP_で始まる必要があります。SENTRY_TOKENやAPI_KEYのような名前では、MCP設定から期待どおりに参照できない可能性があります。(GitHub Docs)

組織レベルとリポジトリレベルで同じ名前を使う

同じ名前の値が複数レベルにある場合、より低いレベルの値が優先されます。つまり、リポジトリレベルの値が組織レベルの値を上書きします。共通設定を更新したのに一部リポジトリだけ挙動が変わらない場合、同名のリポジトリレベル設定が残っている可能性があります。(GitHub Docs)

All repositoriesで広く公開しすぎる

組織レベルで設定できるようになると、All repositoriesを選びたくなります。しかし、secretの内容によっては、対象リポジトリを限定するべきです。特に、社内システムや外部SaaSにアクセスできるトークンは、Selected repositoriesで必要な範囲に絞りましょう。

今回の更新をどう活用すべきか

今回の「More flexible secrets and variables for Copilot cloud agent」は、単なる設定画面の変更ではありません。Copilot cloud agentを組織で本格展開するための管理機能が整った更新と見るべきです。

小規模な個人リポジトリでは影響は限定的ですが、OrganizationでCopilot cloud agentを使う場合は、次の方針で整理すると運用しやすくなります。

  • 共通設定は組織レベルのAgents secrets/variablesへ集約する
  • 機密値はsecret、非機密値はvariableに分ける
  • MCP用の値はCOPILOT_MCP_接頭辞で統一する
  • リポジトリ固有の値は無理に共通化しない
  • 最初はSelected repositoriesで展開し、動作確認後に範囲を広げる
  • Actions/Codespaces/Dependabot用のsecretsとは別物として管理する

まず行うべきことは、現在Copilot cloud agentで使っているリポジトリを洗い出し、Agents secrets/variablesの設定状態を確認することです。そのうえで、重複しているトークンやMCP設定を組織レベルへ集約できるかを検討しましょう。設定の共通化と権限の最小化を同時に進めることで、Copilot cloud agentをより安全に、よりスケールしやすく運用できます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次