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_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) 세션의 원격 제어에 대한 정보엔터프라이즈 관리 설정을(를) 참조하세요.

스크립트에 대한 런타임 환경 변수

스크립트는 앱에서 제공하는 환경 변수를 사용하여 실행됩니다.

VariableDescription
COPILOT_WORKSPACE_NAME현재 작업 영역 이름입니다.
COPILOT_WORKSPACE_PATH작업 영역의 절대 경로입니다.
COPILOT_ROOT_PATH프로젝트 루트 체크 아웃의 절대 경로입니다.
COPILOT_DEFAULT_BRANCH기본 분기를 Project.
COPILOT_PORT현재 작업 영역 컨텍스트에 대한 App 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>을 사용합니다. 예를 들어 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 셰이프를 구문 분석할 수 있습니다.

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

이 레거시 셰이프에서:

  • setup 는 만들기 트리거를 사용하여 스크립트에 매핑합니다.
  • archive 는 보관 트리거를 사용하여 스크립트에 매핑합니다.
  • run 는 수동 스크립트 항목에 매핑되며 단일 명령 문자열 또는 개체 목록 { name, command } 일 수 있습니다.