シークレットと変数について Copilot クラウドエージェント
タスクを Copilot クラウドエージェントに委任すると、 GitHub Actionsを利用した独自のエフェメラル開発環境で動作します。 シークレットと変数をエージェントに渡す理由として、以下の目的が考えられます。
- Copilotエージェントの環境内でコードをビルド、テスト、検証するときに、内部パッケージ レジストリなどのプライベート リソースにアクセスできるようにします。
- API キー、トークン、またはその他の構成をサーバーに渡して、MCP サーバーを構成します。 詳細については、「エージェントを外部ツールに接続する」を参照してください。
- その環境で実行されるCopilotや
copilot-setup-steps.ymlを含むスクリプトやツールで利用できる環境変数を設定します。 詳細については、「開発環境を構成する」を参照してください。
Copilot クラウドエージェントには、既存の Actions、Codespaces、Dependabot 型と共に、専用のエージェント シークレットと変数があります。 エージェントのシークレットと変数は、次の場合に構成できます。
- 組織レベルなので、組織内の任意またはすべてのリポジトリ間で 1 つのシークレットまたは変数を共有できます。
- 1 つのリポジトリにのみ適用される構成のリポジトリ レベル。
構成した変数とシークレットは、 Copilot に環境変数として公開されます。ただし、MCP サーバーでのみ使用できる、 COPILOT_MCP_プレフィックスが付いたシークレットと変数は除きます。
メモ
リポジトリのcopilot設定でGitHub Actions環境でシークレットまたは変数を構成したことがある場合、それらのシークレットと変数は、新しいリポジトリ レベルのエージェントの種類に自動的に移行されます。 アクションを実行する必要はありません。今後は新しい場所から管理できます。
リポジトリ レベルのシークレットと変数の構成
リポジトリのエージェント シークレットと変数を構成するには、リポジトリ管理者である必要があります。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの[セキュリティ]セクションで、[ シークレットと変数]、[ エージェント]の順にクリックします。
-
シークレットを追加するには、[ シークレット ] タブをクリックし、[ 新しいリポジトリ シークレット] をクリックします。 変数を追加するには、[ 変数 ] タブをクリックし、[ 新しいリポジトリ変数] をクリックします。
-
[名前] フィールドと [値] (または [シークレット] フィールド) を入力し、[シークレットの 追加 ] または [ 変数の追加] をクリックします。
組織レベルのシークレットと変数の構成
組織のエージェント シークレットと変数を構成するには、組織の所有者である必要があります。
-
GitHub で、organization のメイン ページに移動します。
-
Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。](/assets/cb-49309/images/help/discussions/org-settings-global-nav-update.png)
-
サイドバーの[セキュリティ]セクションで、[ シークレットと変数]、[ エージェント]の順にクリックします。
-
シークレットを追加するには、[ シークレット ] タブをクリックし、[ 新しい組織のシークレット] をクリックします。 変数を追加するには、[ 変数 ] タブをクリックし、[ 新しい組織変数] をクリックします。
-
[名前] フィールドと [値] (または [シークレット] フィールド) を入力します。
-
[リポジトリ アクセス] で、組織内のどのリポジトリがシークレットまたは変数にアクセスできるかを選択します。
- すべてのリポジトリ: 組織内のすべてのリポジトリがシークレットまたは変数にアクセスできます。
- プライベート リポジトリ: 組織内のプライベートリポジトリまたは内部リポジトリは、シークレットまたは変数にアクセスできます。
- 選択したリポジトリ: 指定したリポジトリのみがシークレットまたは変数にアクセスできます。
-
[ シークレットの追加] または [ 変数の追加] をクリックします。
シークレットと変数の使用
構成すると、エージェント シークレットと変数は、リポジトリ内のタスクで動作するときに、 Copilot クラウドエージェント に自動的に使用できるようになります。 これらは開発環境で環境変数としてエージェントに公開されるため、Copilot ワークフローを含め、実行copilot-setup-steps.ymlスクリプトやツールで使用できます。
シークレット値は、 Copilot クラウドエージェント セッション ログでマスクされます。
メモ
Copilot クラウドエージェント には、 GitHub Actions、 Codespaces、または Dependabot シークレットと変数へのアクセス権がありません。 エージェントシークレットと変数のみがエージェントに渡されます。
シークレットと変数の名前付けの要件
名前は次の条件を満たす必要があります。
- 英数字 (
[A-Z]、[0-9]) またはアンダースコア (_) のみを含みます。 スペースは使用できません。 GITHUB_プレフィックスで始めません。- 数値で始めません。
名前の大文字と小文字は区別されません。 小文字は大文字に変換されます。 名前は、作成されるレベルで一意である必要があります。
同じ名前の変数またはシークレットが複数のレベルに存在する場合は、最も低いレベルの値が優先されます。 たとえば、リポジトリ レベルのシークレットは、組織レベルのシークレットを同じ名前でオーバーライドします。
MCP サーバーに渡すシークレットと変数の場合、名前はプレフィックス COPILOT_MCP_で始まる必要があります。 MCP 構成では、このプレフィックスを持つエージェント シークレットと変数のみを使用できます。 詳細については、「エージェントを外部ツールに接続する」を参照してください。