Skip to main content
Skip to content

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

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

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

GitHub Copilot appは、すべてのCopilotプランで使用できます。
GitHub Copilot app をダウンロードします。

リポジトリ内の .github/github-app.yml を使用して、そのリポジトリで GitHub Copilot app がどのように動作するかを定義します。

これらのリポジトリ設定は、アプリ 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_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_NAME現在のワークスペース名。
COPILOT_WORKSPACE_PATHワークスペースへの絶対パス。
COPILOT_ROOT_PATHリポジトリ ルートのチェックアウト先への絶対パス。
COPILOT_DEFAULT_BRANCHリポジトリの既定のブランチ。
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>形式を使用します。 たとえば、github.com上のaliceのトークンはCOPILOT_GH_ACCOUNT_github_2E_com_aliceです。また、ghe-example.com上のuserのトークンは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 は、create トリガーを持つスクリプトにマップされます。
  • archive は、アーカイブ トリガーを持つスクリプトにマップされます。
  • run は手動のスクリプト エントリにマップされ、単一のコマンド文字列または { name, command } オブジェクトの一覧のいずれかです。