Skip to main content

Copilotクラウドエージェントのシークレットと変数を設定する

プライベート リソースにアクセスして MCP サーバーを構成できるように、シークレットと変数を安全に Copilot クラウドエージェント に渡します。

シークレットと変数について Copilot クラウドエージェント

タスクを Copilot クラウドエージェントに委任すると、 GitHub Actionsを利用した独自のエフェメラル開発環境で動作します。 シークレットと変数をエージェントに渡す理由として、以下の目的が考えられます。

  • Copilotエージェントの環境内でコードをビルド、テスト、検証するときに、内部パッケージ レジストリなどのプライベート リソースにアクセスできるようにします。
  • API キー、トークン、またはその他の構成をサーバーに渡して、MCP サーバーを構成します。 詳細については、「エージェントを外部ツールに接続する」を参照してください。
  • その環境で実行されるCopilotやcopilot-setup-steps.ymlを含むスクリプトやツールで利用できる環境変数を設定します。 詳細については、「開発環境を構成する」を参照してください。

Copilot クラウドエージェントには、既存の ActionsCodespacesDependabot 型と共に、専用のエージェント シークレットと変数があります。 エージェントのシークレットと変数は、次の場合に構成できます。

  • 組織レベルなので、組織内の任意またはすべてのリポジトリ間で 1 つのシークレットまたは変数を共有できます。
  • 1 つのリポジトリにのみ適用される構成のリポジトリ レベル

構成した変数とシークレットは、 Copilot に環境変数として公開されます。ただし、MCP サーバーでのみ使用できる、 COPILOT_MCP_プレフィックスが付いたシークレットと変数は除きます。

メモ

リポジトリのcopilot設定でGitHub Actions環境でシークレットまたは変数を構成したことがある場合、それらのシークレットと変数は、新しいリポジトリ レベルのエージェントの種類に自動的に移行されます。 アクションを実行する必要はありません。今後は新しい場所から管理できます。

リポジトリ レベルのシークレットと変数の構成

リポジトリのエージェント シークレットと変数を構成するには、リポジトリ管理者である必要があります。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの[セキュリティ]セクションで、[ シークレットと変数]、[ エージェント]の順にクリックします。

  4. シークレットを追加するには、[ シークレット ] タブをクリックし、[ 新しいリポジトリ シークレット] をクリックします。 変数を追加するには、[ 変数 ] タブをクリックし、[ 新しいリポジトリ変数] をクリックします。

  5. [名前] フィールドと [値] (または [シークレット] フィールド) を入力し、[シークレットの 追加 ] または [ 変数の追加] をクリックします。

組織レベルのシークレットと変数の構成

組織のエージェント シークレットと変数を構成するには、組織の所有者である必要があります。

  1. GitHub で、organization のメイン ページに移動します。

  2. Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. サイドバーの[セキュリティ]セクションで、[ シークレットと変数]、[ エージェント]の順にクリックします。

  4. シークレットを追加するには、[ シークレット ] タブをクリックし、[ 新しい組織のシークレット] をクリックします。 変数を追加するには、[ 変数 ] タブをクリックし、[ 新しい組織変数] をクリックします。

  5. [名前] フィールドと [値] (または [シークレット] フィールド) を入力します。

  6. [リポジトリ アクセス] で、組織内のどのリポジトリがシークレットまたは変数にアクセスできるかを選択します。

    • すべてのリポジトリ: 組織内のすべてのリポジトリがシークレットまたは変数にアクセスできます。
    • プライベート リポジトリ: 組織内のプライベートリポジトリまたは内部リポジトリは、シークレットまたは変数にアクセスできます。
    • 選択したリポジトリ: 指定したリポジトリのみがシークレットまたは変数にアクセスできます。
  7. [ シークレットの追加] または [ 変数の追加] をクリックします

シークレットと変数の使用

構成すると、エージェント シークレットと変数は、リポジトリ内のタスクで動作するときに、 Copilot クラウドエージェント に自動的に使用できるようになります。 これらは開発環境で環境変数としてエージェントに公開されるため、Copilot ワークフローを含め、実行copilot-setup-steps.ymlスクリプトやツールで使用できます。

シークレット値は、 Copilot クラウドエージェント セッション ログでマスクされます。

メモ

Copilot クラウドエージェント には、 GitHub Actions、 Codespaces、または Dependabot シークレットと変数へのアクセス権がありません。 エージェントシークレットと変数のみがエージェントに渡されます。

シークレットと変数の名前付けの要件

名前は次の条件を満たす必要があります。

  • 英数字 ([A-Z][0-9]) またはアンダースコア (_) のみを含みます。 スペースは使用できません。
  • GITHUB_ プレフィックスで始めません。
  • 数値で始めません。

名前の大文字と小文字は区別されません。 小文字は大文字に変換されます。 名前は、作成されるレベルで一意である必要があります。

同じ名前の変数またはシークレットが複数のレベルに存在する場合は、最も低いレベルの値が優先されます。 たとえば、リポジトリ レベルのシークレットは、組織レベルのシークレットを同じ名前でオーバーライドします。

MCP サーバーに渡すシークレットと変数の場合、名前はプレフィックス COPILOT_MCP_で始まる必要があります。 MCP 構成では、このプレフィックスを持つエージェント シークレットと変数のみを使用できます。 詳細については、「エージェントを外部ツールに接続する」を参照してください。

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