.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에서 GitHub Mobile 세션에 액세스할 수 있는지 여부를 제어합니다. 생략하면 유효 기본값은 .입니다false.
Copilot 사용자 자리가 조직에서 제공된 경우 원격 제어를 사용할 수 있도록 해당 "클라우드에 로컬 세션 저장" 정책을 "보기 및 제어"로 설정해야 합니다. 엔터프라이즈 관리 remoteControl 설정은 있는 경우에도 automation.remote_control 원격 제어를 추가로 제한할 수 있습니다 true. 자세한 내용은 GitHub Copilot 명령 줄 인터페이스 (CLI) 세션의 원격 제어에 대한 정보 및 엔터프라이즈 관리 설정을(를) 참조하세요.
스크립트에 대한 런타임 환경 변수
스크립트는 앱에서 제공하는 환경 변수를 사용하여 실행됩니다.
| Variable | Description |
|---|---|
COPILOT_WORKSPACE_ | 현재 작업 영역 이름입니다. |
COPILOT_WORKSPACE_ | 작업 영역의 절대 경로입니다. |
COPILOT_ROOT_PATH | 프로젝트 루트 체크 아웃의 절대 경로입니다. |
COPILOT_DEFAULT_ | 기본 분기를 Project. |
COPILOT_PORT | 현재 작업 영역 컨텍스트에 대한 App WebSocket 포트입니다. |
COPILOT_SCRIPT_ | 스크립트를 시작한 트리거(트리거된 스크립트에 대해서만 설정됨). |
GH_TOKEN | 선택한 GitHub 계정에 대한 토큰입니다. |
GH_HOST | 선택한 GitHub 계정의 호스트입니다. |
COPILOT_GH_ACCOUNT_ | 선택한 계정을 포함하여 로그인한 모든 계정에 대한 호스트 및 계정별 토큰입니다. |
각 COPILOT_GH_ACCOUNT_* 변수에 대해 앱은 호스트 및 로그인을 소문자로 만들고, ASCII 문자와 숫자를 변경하지 않고, 다른 모든 UTF-8 바이트를 밑줄로 둘러싸인 대문자 16진수 값으로 바꿉니다. 변수 이름은 형식 COPILOT_GH_ACCOUNT_<HOST>_<LOGIN>을 사용합니다. 예를 들어 on에 대한 alice 토큰은 github.com이며 on에 대한 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는 수동 스크립트 항목에 매핑되며 단일 명령 문자열 또는 개체 목록{ name, command }일 수 있습니다.