Skip to main content

GitHub Copilot アプリのリポジトリ構成

GitHub Copilot アプリのリポジトリ固有の命令、スクリプト、および自動化の動作を定義します。

この機能を使用できるユーザーについて

GitHub Copilot アプリ は、すべての Copilot プランで使用できます。
Download GitHub Copilot アプリ

リポジトリの .github/github-app.yml を使用して、そのプロジェクトの GitHub Copilot アプリ の動作を定義します。

これらのプロジェクト設定は、アプリ UI で編集することもできます。 .github/github-app.ymlが既に存在する場合は、UI の変更がそのファイルに書き戻されます。 まだ存在しない場合は、アプリの現在のプロジェクト設定から作成できます。

構成ファイルの場所について

次の位置にファイルを作成します。

Text
.github/github-app.yml

このアプリでは、旧バージョンとの互換性のために、従来のファイル名 .github/copilot-desktop.yml もサポートされています。

UI ベースのカスタマイズ手順については、 GitHub Copilot アプリのカスタマイズ を参照してください。

構成を確認して信頼する

アプリは、リポジトリから構成を検出した場合、構成を確認して受け入れるまで、リポジトリの指示、スクリプト、またはその他の設定をファイルから適用しません。 これにより、別の共同作成者によって追加されたコマンドの実行や設定の適用から保護されます。 アプリ UI を使用して作成または更新した構成は、自動的に信頼されます。

警告

リポジトリ構成を受け入れる前に、構成されているすべてのコマンドと実行される依存関係を確認します。 スクリプトとその子プロセスは、この記事で後述する GitHub 資格情報を受け取るので、これらの環境変数をログに記録したり永続化したりするように構成しないでください。

空白やコメントの変更など、アプリの外部でファイルが変更された場合は、アプリが適用される前に、更新された構成を確認して受け入れる必要があります。 現在のバージョンを受け入れるまで、アプリは以前にアプリで構成されたプロジェクト設定を引き続き使用します。

構成例

YAML
instructions: |
  Use bun instead of npm.

scripts:
  - name: Setup
    command: bun install
    triggers:
      - session.create
  - name: Run
    command: bun run dev
  - name: Archive cleanup
    command: rm -rf node_modules
    triggers:
      - session.archive

server_ready_pattern: '(?i)Local:\s+(https?://\S+)'
auto_open_in_browser: true

automation:
  auto_issue_session: true
  remote_control: false

手順とスクリプトを構成する

instructions

instructionsを使用して、プロジェクト内のセッションのシステム プロンプトにリポジトリ固有のガイダンスを追加します。 アプリでグローバル命令も構成する場合は、最初にグローバル命令が適用され、その後にプロジェクトの指示が適用されます。

scripts

scriptsを使用して、アプリに表示され、手動または特定のトリガーで実行できるコマンドを定義します。

各スクリプト項目では、次の機能がサポートされます。

  • name (string): UI の表示名。
  • command (string): 実行するコマンド。
  • triggers (string[]、省略可能): スクリプトを自動実行するイベント。

triggersのないスクリプトは手動で行います。

トリガー値

ファイルで正規のトリガー値を使用します。

  • session.create
  • session.archive

アプリは、既存のファイルを解析するときに、次のレガシ エイリアスも受け入れます。

  • workspace.create ( session.createのエイリアス)
  • workspace.archive ( session.archiveのエイリアス)

トリガーされたスクリプトを実行すると、 COPILOT_SCRIPT_TRIGGER は正規の値に設定されます。

  • session.create
  • session.archive

サーバーの検出とブラウザーの動作を構成する

server_ready_pattern

server_ready_pattern は、実行スクリプトがサーバーを起動したことを検出するために使用される正規表現です。

パターンでは、Rust の regex クレートでサポートされている構文が使用されます。 構文の詳細については、クレートドキュメントの 構文 を参照してください。 パターンが無効な場合、アプリは既定のサーバー検出パターンを使用します。

検出された URL またはポートには、最初のキャプチャ グループを使用します。 アプリはキャプチャ グループ 1を読み取ります。

  • キャプチャが URL (http://... または https://...)は、URL が使用されます。
  • キャプチャがポート番号 (例: 3000)、アプリはそれを http://localhost:3000に変換します。

auto_open_in_browser

auto_open_in_browsertrueされている場合、アプリは統合ブラウザーで検出された実行 URL を開きます。 このフィールドを省略すると、有効な既定値は true

自動化の動作を構成する

automationで自動化オプションを設定します。

  • automation.auto_issue_session (boolean) は、アプリが問題コンテキストを含むセッションを自動的に開始するかどうかを制御します。 省略した場合、有効な既定値は true
  • automation.remote_control (boolean) は、 GitHub Web インターフェイスまたは GitHub Mobileからセッションにアクセスできるかどうかを制御します。 省略した場合、有効な既定値は false

Copilotシートが組織から来ている場合は、リモート コントロールを使用できるようにするには、該当する "クラウドにローカル セッションを保存する" ポリシーを "表示および制御" に設定する必要があります。 エンタープライズ管理の remoteControl 設定では、 automation.remote_controltrueされている場合でも、リモート 制御をさらに制限できます。 詳細については、「GitHub Copilot CLI(コマンドラインインターフェース) セッションのリモート 制御について」および「エンタープライズ管理設定」を参照してください。

スクリプトのランタイム環境変数

スクリプトは、次のアプリで提供される環境変数で実行されます。

Variable説明
COPILOT_WORKSPACE_NAME現在のワークスペース名。
COPILOT_WORKSPACE_PATHワークスペースへの絶対パス。
COPILOT_ROOT_PATHプロジェクト ルート チェックアウトへの絶対パス。
COPILOT_DEFAULT_BRANCH既定のブランチProjectします。
COPILOT_PORT現在のワークスペース コンテキストのアプリ WebSocket ポート。
COPILOT_SCRIPT_TRIGGERスクリプトを起動したトリガー (トリガーされたスクリプトにのみ設定)。
GH_TOKEN選択した GitHub アカウントのトークン。
GH_HOST選択した GitHub アカウントのホスト。
COPILOT_GH_ACCOUNT_*選択したアカウントを含む、サインインしているすべてのアカウントのホストおよびアカウント固有のトークン。

COPILOT_GH_ACCOUNT_*変数ごとに、アプリはホストとログインを小文字にし、ASCII 文字と数字を変更せずに残し、他のすべての UTF-8 バイトを、アンダースコアで囲まれた大文字の 16 進数の値に置き換えます。 変数名は COPILOT_GH_ACCOUNT_<HOST>_<LOGIN>形式を使用します。 たとえば、aliceでのgithub.comのトークンはCOPILOT_GH_ACCOUNT_github_2E_com_aliceされ、userでのghe-example.comのトークンはCOPILOT_GH_ACCOUNT_ghe_2D_example_2E_com_user

従来の互換性

下位互換性のために、アプリは引き続き古いオブジェクト ベースの scripts 図形を解析できます。

YAML
scripts:
  setup: bun install
  run: bun run dev
  archive: rm -rf node_modules

この従来の図形では、次の操作を行います。

  • setup は、作成トリガーを使用してスクリプトにマップされます。
  • archive は、アーカイブ トリガーを使用してスクリプトにマップされます。
  • run は手動のスクリプト エントリにマップされ、1 つのコマンド文字列または { name, command } オブジェクトの一覧を指定できます。