リポジトリの .github/github-app.yml を使用して、そのプロジェクトの GitHub Copilot アプリ の動作を定義します。
これらのプロジェクト設定は、アプリ UI で編集することもできます。
.github/github-app.ymlが既に存在する場合は、UI の変更がそのファイルに書き戻されます。 まだ存在しない場合は、アプリの現在のプロジェクト設定から作成できます。
構成ファイルの場所について
次の位置にファイルを作成します。
.github/github-app.yml
.github/github-app.yml
このアプリでは、旧バージョンとの互換性のために、従来のファイル名 .github/copilot-desktop.yml もサポートされています。
UI ベースのカスタマイズ手順については、 GitHub Copilot アプリのカスタマイズ を参照してください。
構成を確認して信頼する
アプリは、リポジトリから構成を検出した場合、構成を確認して受け入れるまで、リポジトリの指示、スクリプト、またはその他の設定をファイルから適用しません。 これにより、別の共同作成者によって追加されたコマンドの実行や設定の適用から保護されます。 アプリ UI を使用して作成または更新した構成は、自動的に信頼されます。
警告
リポジトリ構成を受け入れる前に、構成されているすべてのコマンドと実行される依存関係を確認します。 スクリプトとその子プロセスは、この記事で後述する GitHub 資格情報を受け取るので、これらの環境変数をログに記録したり永続化したりするように構成しないでください。
空白やコメントの変更など、アプリの外部でファイルが変更された場合は、アプリが適用される前に、更新された構成を確認して受け入れる必要があります。 現在のバージョンを受け入れるまで、アプリは以前にアプリで構成されたプロジェクト設定を引き続き使用します。
構成例
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: |
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.createsession.archive
アプリは、既存のファイルを解析するときに、次のレガシ エイリアスも受け入れます。
workspace.create(session.createのエイリアス)workspace.archive(session.archiveのエイリアス)
トリガーされたスクリプトを実行すると、 COPILOT_SCRIPT_TRIGGER は正規の値に設定されます。
session.createsession.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_browserがtrueされている場合、アプリは統合ブラウザーで検出された実行 URL を開きます。 このフィールドを省略すると、有効な既定値は true。
自動化の動作を構成する
automationで自動化オプションを設定します。
automation.auto_issue_session(boolean) は、アプリが問題コンテキストを含むセッションを自動的に開始するかどうかを制御します。 省略した場合、有効な既定値はtrue。automation.remote_control(boolean) は、 GitHub Web インターフェイスまたは GitHub Mobileからセッションにアクセスできるかどうかを制御します。 省略した場合、有効な既定値はfalse。
Copilotシートが組織から来ている場合は、リモート コントロールを使用できるようにするには、該当する "クラウドにローカル セッションを保存する" ポリシーを "表示および制御" に設定する必要があります。 エンタープライズ管理の remoteControl 設定では、 automation.remote_control が trueされている場合でも、リモート 制御をさらに制限できます。 詳細については、「GitHub Copilot CLI(コマンドラインインターフェース) セッションのリモート 制御について」および「エンタープライズ管理設定」を参照してください。
スクリプトのランタイム環境変数
スクリプトは、次のアプリで提供される環境変数で実行されます。
| Variable | 説明 |
|---|---|
COPILOT_WORKSPACE_ | 現在のワークスペース名。 |
COPILOT_WORKSPACE_ | ワークスペースへの絶対パス。 |
COPILOT_ROOT_PATH | プロジェクト ルート チェックアウトへの絶対パス。 |
COPILOT_DEFAULT_ | 既定のブランチProjectします。 |
COPILOT_PORT | 現在のワークスペース コンテキストのアプリ WebSocket ポート。 |
COPILOT_SCRIPT_ | スクリプトを起動したトリガー (トリガーされたスクリプトにのみ設定)。 |
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 図形を解析できます。
scripts: setup: bun install run: bun run dev archive: rm -rf node_modules
scripts:
setup: bun install
run: bun run dev
archive: rm -rf node_modules
この従来の図形では、次の操作を行います。
setupは、作成トリガーを使用してスクリプトにマップされます。archiveは、アーカイブ トリガーを使用してスクリプトにマップされます。runは手動のスクリプト エントリにマップされ、1 つのコマンド文字列または{ name, command }オブジェクトの一覧を指定できます。