Skip to main content

개발 환경 구성

도구 및 종속성을 미리 설치하여 Copilot 클라우드 에이전트 변경 내용을 안정적으로 빌드, 테스트 및 유효성을 검사할 수 있습니다.

개발 환경을 Copilot 클라우드 에이전트에 맞게 사용자 지정하는 방법에 대해

작업을 수행하는 동안 Copilot는 GitHub Actions에 의해 구동되는 자체 임시 개발 환경에 액세스할 수 있으며, 그곳에서 여러분의 코드를 탐색하고, 변경하며, 자동화된 테스트와 린터를 실행하는 등의 작업을 수행할 수 있습니다.

개발 환경을 Copilot로 사용자 지정할 수 있는 Copilot설정 단계 파일입니다. Copilot 설치 단계 파일을 사용하여 다음을 수행할 수 있습니다.

추가로, 다음을 수행할 수 있습니다.

참고

조직 소유자는 조직의 모든 리포지토리에서 기본 실행기 유형을 Copilot 클라우드 에이전트 구성하고 리포지토리에서 이 기본값을 재정의할 수 있는지 여부를 선택할 수 있습니다. 자세한 내용은 조직 내 GitHub Copilot 클라우드 에이전트를 위한 실행기 구성하기을(를) 참조하세요.

          Copilot 개발 환경을 설정 단계 Copilot으로 사용자 지정하기

리포지토리 내 Copilot 위치에 GitHub Actions라는 특별한 워크플로 파일을 생성하여 .github/workflows/copilot-setup-steps.yml의 환경을 사용자 지정할 수 있습니다.

          `copilot-setup-steps.yml` 파일은 일반 GitHub Actions 워크플로 파일처럼 보이지만 반드시 단일 `copilot-setup-steps` 작업을 포함해야 합니다. 이 작업의 단계는 GitHub Actions에서 Copilot이 시작되기 전에 실행됩니다. 워크플로 파일에 대한 GitHub Actions 자세한 내용은 [AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions)을 참조하세요.

참고

          `copilot-setup-steps.yml` 워크플로는 기본 분기에 존재하지 않으면 트리거되지 않습니다.

다음은 프로젝트를 복제하고, Node.js를 설치하며, 프로젝트의 종속성을 다운로드하고 캐시하는 TypeScript 프로젝트의 copilot-setup-steps.yml 파일에 대한 간단한 예입니다. 사용자 고유의 project 언어 및 종속성에 맞게 사용자 지정해야 합니다.

YAML
name: "Copilot Setup Steps"

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
  copilot-setup-steps:
    runs-on: ubuntu-latest

    # Set the permissions to the lowest permissions possible needed for your steps.
    # Copilot will be given its own token for its operations.
    permissions:
      # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission.
      # If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
      contents: read

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      # ...
          `copilot-setup-steps.yml` 파일에서 `copilot-setup-steps` 작업의 다음의 설정만 사용자 지정할 수 있습니다. 다른 설정을 사용자 지정하면 변경 내용이 무시됩니다.
  • steps (위의 내용 참조)
  • permissions (위의 내용 참조)
  • runs-on (아래 내용 참조)
  • services
  • snapshot
  • timeout-minutes (최대 값: 59)

이러한 옵션에 대한 자세한 내용은 GitHub Actions에 대한 워크플로 구문 참조하세요.

작업의 fetch-depth옵션actions/checkout에 설정된 값은 에이전트가 요청 시 커밋을 롤백할 수 있도록 재정의되는 한편 보안 위험을 완화합니다. 자세한 내용은 actions/checkout/README.md를 참조하세요.

          `copilot-setup-steps.yml` 파일이 변경될 때 자동으로 일반 GitHub Actions 워크플로로 실행되므로 파일이 성공적으로 실행되는지 확인할 수 있습니다. 이는 파일을 만들거나 수정하는 끌어오기 요청의 다른 검사와 함께 표시됩니다.

yml 파일을 기본 분기에 병합하면 모든 것이 예상대로 작동하는지 확인하기 위해 언제든지 리포지토리의 작업 탭에서 워크플로를 수동으로 실행할 수 있습니다. 자세한 내용은 수동으로 워크플로 실행을(를) 참조하세요.

작업이 시작되면 Copilot 설정 단계가 실행되고 업데이트가 세션 로그에 표시됩니다. GitHub Copilot 세션 추적을(를) 참조하세요.

0이 아닌 종료 코드를 반환하여 Copilot 설치 단계가 실패할 경우, 나머지 설정 단계를 건너뛰고 현재 개발 환경 상태로 작업을 시작합니다.

          Copilot의 환경에서 도구 또는 종속성을 사전 설치

임시 개발 환경에서 Copilot 프로젝트를 빌드하거나 컴파일하고 자동화된 테스트, linter 및 기타 도구를 실행할 수 있습니다. 이를 수행하려면, 귀하의 프로젝트 종속성을 설치해야 합니다.

          Copilot 는 시행착오 프로세스를 통해 이러한 종속성 자체를 검색하고 설치할 수 있지만, LLM(대규모 언어 모델)의 비결정적 특성을 고려할 때 느리고 신뢰할 수 없으며, 경우에 따라 이러한 종속성을 완전히 다운로드할 수 없을 수 있습니다(예: 비공개인 경우).

Copilot 설치 단계 파일을 사용하여 Copilot 작업을 시작하기 전에 도구 또는 종속성을 결정적으로 설치할 수 있습니다. 이를 위해 steps 작업에 copilot-setup-steps를 추가합니다.

# ...

jobs:
  copilot-setup-steps:
    # ...

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"

      - name: Install JavaScript dependencies
        run: npm ci

대형 GitHub 호스팅 GitHub Actions 실행기로 업그레이드

기본적으로 Copilot 표준 GitHub Actions 실행기에서 작동합니다. 더 나은 성능(CPU 및 메모리), 더 많은 디스크 공간 및 Azure 프라이빗 네트워킹과 같은 고급 기능을 위해 더 큰 실행기로 업그레이드할 수 있습니다. 자세한 내용은 더 큰 주자들을(를) 참조하세요.

  1. 조직에 더 큰 러너를 설정합니다. 자세한 내용은 대형 런너 관리하기을(를) 참조하세요.

  2. Azure 프라이빗 네트워킹에서 대형 러너를 사용하는 경우, Copilot 클라우드 에이전트 호스트에 필요한 출력 방향 액세스를 허용하도록 Azure 프라이빗 네트워크를 구성합니다.

    • uploads.github.com
    • user-images.githubusercontent.com
    • api.individual.githubcopilot.com(Copilot Pro 또는 Copilot Pro+ 사용자가 리포지토리에서 Copilot 클라우드 에이전트를 사용할 것으로 예상되는 경우)
    • api.business.githubcopilot.com(코파일럿 사업 사용자가 리포지토리에서 Copilot 클라우드 에이전트를 사용할 것으로 예상하는 경우)
    • api.enterprise.githubcopilot.com(리포지토리에서 사용자가 Copilot 클라우드 에이전트를 사용할 것으로 예상되는 경우)
    • 타사 에이전트를 OpenAI Codex 사용하는 경우(자세한 내용은 타사 에이전트 정보 참조):
      • npmjs.org
      • npmjs.com
      • registry.npmjs.com
      • registry.npmjs.org
      • skimdb.npmjs.com
  3. 리포지토리의 copilot-setup-steps.yml 파일을 사용해서 선택한 실행기에서 Copilot 클라우드 에이전트을 실행하도록 구성합니다. runs-on 작업의 copilot-setup-steps 단계를 Copilot가 사용할 더 큰 실행기의 레이블 및/또는 그룹으로 설정합니다. runs-on를 사용하여 더 큰 실행기를 지정하는 방법에 대한 자세한 내용은 더 큰 실행기에서 작업 실행를 참조하시기 바랍니다.

    # ...
    
    jobs:
      copilot-setup-steps:
        runs-on: ubuntu-4-core
        # ...
    

참고

* Copilot 클라우드 에이전트 는 Ubuntu x64 Linux 및 Windows 64비트 실행기와만 호환됩니다. macOS 또는 기타 운영 체제를 사용하는 실행기는 지원되지 않습니다.

자체 호스팅 GitHub Actions 실행기 사용

          Copilot 클라우드 에이전트을(를) 자체 호스팅 실행기에서 실행할 수 있습니다. CI/CD 워크플로의 실행 방식과 일치시키거나 네트워크의 내부 리소스에 GitHub Actions 액세스를 제공하기 위해 이 작업을 수행하고자 할 수 있습니다.

임시로 한 번만 사용하는 실행기에서만 Copilot 클라우드 에이전트를 사용하는 것을 권장합니다. 이 실행기는 여러 작업에 재사용되지 않습니다. 대부분의 고객은 ARC(Actions Runner 컨트롤러) 또는 Runner Scale Set 클라이언트를 GitHub Actions 사용하여 이를 설정합니다. 자세한 내용은 자체 호스팅 실행기 참조을(를) 참조하세요.

참고

          Copilot 클라우드 에이전트 는 Ubuntu x64 및 Windows 64비트 실행기와만 호환됩니다. macOS 또는 기타 운영 체제를 사용하는 실행기는 지원되지 않습니다.
  1. 실행기의 네트워크 보안 컨트롤을 GitHub Actions 구성하여 Copilot 클라우드 에이전트의 네트워크 또는 공용 인터넷에 대한 열린 액세스가 없도록 합니다.

    방화벽을 구성하여 GitHub Actions 및 다음 호스트에 대한 연결을 허용해야 합니다.

    • uploads.github.com
    • user-images.githubusercontent.com
    • api.individual.githubcopilot.com(Copilot Pro 또는 Copilot Pro+ 사용자가 리포지토리에서 Copilot 클라우드 에이전트를 사용할 것으로 예상되는 경우)
    • api.business.githubcopilot.com(코파일럿 사업 사용자가 리포지토리에서 Copilot 클라우드 에이전트를 사용할 것으로 예상하는 경우)
    • api.enterprise.githubcopilot.com(리포지토리에서 사용자가 Copilot 클라우드 에이전트를 사용할 것으로 예상되는 경우)
    • 타사 에이전트를 OpenAI Codex 사용하는 경우(자세한 내용은 타사 에이전트 정보 참조):
      • npmjs.org
      • npmjs.com
      • registry.npmjs.com
      • registry.npmjs.org
      • skimdb.npmjs.com
  2. 리포지토리 설정에서 '의 통합 방화벽을 사용하지 않도록 설정합니다 Copilot 클라우드 에이전트. 방화벽은 자체 호스팅 실행기와 호환되지 않습니다. 사용이 차단되지 않도록 Copilot 클라우드 에이전트의 사용을 비활성화하십시오. 자세한 내용은 GitHub Copilot 클라우드 에이전트에 대한 방화벽 사용자 지정 또는 비활성화을(를) 참조하세요.

  3.        `copilot-setup-steps.yml` 파일에서 `runs-on` 속성을 ARC 관리 확장 집합 이름으로 설정합니다.
    
    # ...
    
    jobs:
      copilot-setup-steps:
        runs-on: arc-scale-set-name
        # ...
    
  4. 인터넷에 대한 '의 연결에 대한 Copilot 클라우드 에이전트프록시 서버를 구성하려면 다음 환경 변수를 적절하게 구성합니다.

    변수Description예시
    https_proxyHTTPS 트래픽에 대한 프록시 URL입니다. 필요한 경우 기본 인증을 포함할 수 있습니다.http://proxy.local
    http://192.168.1.1:8080
    http://username:password@proxy.local
    http_proxyHTTP 트래픽에 대한 프록시 URL입니다. 필요한 경우 기본 인증을 포함할 수 있습니다.http://proxy.local
    http://192.168.1.1:8080
    http://username:password@proxy.local
    no_proxy프록시를 바이패스해야 하는 호스트 또는 IP 주소의 쉼표로 구분된 목록입니다. 일부 클라이언트는 호스트 이름이 아닌 IP에 직접 연결되는 경우에만 IP 주소를 적용합니다.example.com
    example.com,myserver.local:443,example.org
              | 
           `ssl_cert_file`    | 프록시 서버에서 제공하는 SSL 인증서의 경로입니다. 프록시가 SSL 연결을 가로채는 경우 이를 구성해야 합니다.
            | 
           `/path/to/key.pem`                               |
    

| node_extra_ca_certs | 프록시 서버에서 제공하는 SSL 인증서의 경로입니다. 프록시가 SSL 연결을 가로채는 경우 이를 구성해야 합니다. | /path/to/key.pem |

          [아래 지침](#setting-environment-variables-in-copilots-environment)에 따라 또는 사용자 지정 실행기 이미지를 사용하여 실행기에서 직접 설정하여 이러한 환경 변수를 설정할 수 있습니다. 사용자 지정 이미지를 빌드하는 방법에 대한 자세한 내용은 [AUTOTITLE](/actions/concepts/runners/actions-runner-controller#creating-your-own-runner-image)을 참조하세요.

          Copilot Windows 개발 환경으로 전환

기본적으로 Copilot Ubuntu Linux 기반 개발 환경을 사용합니다.

Windows용 소프트웨어를 빌드하거나 리포지토리에서 Windows 기반 도구 체인을 사용하는 경우 Windows 개발 환경을 사용할 수 있으므로 Copilot 프로젝트를 빌드하고 테스트를 실행하고 작업의 유효성을 검사할 수 있습니다.

          Copilot 클라우드 에이전트'의 통합 방화벽은 Windows와 호환되지 않으므로 자체 네트워크 컨트롤을 구현할 수 있는 Azure 프라이빗 네트워킹에서 자체 호스팅 실행기 또는 더 큰 GitHub호스팅된 실행기만 사용하는 것이 좋습니다. Azure 프라이빗 네트워킹을 사용하는 러너에 대한 자세한 내용은 [AUTOTITLE](/admin/configuring-settings/configuring-private-networking-for-hosted-compute-products/about-azure-private-networking-for-github-hosted-runners-in-your-enterprise)을 참조하세요.

자체 호스팅 실행기에서 Windows를 사용하려면 Windows 실행기에 해당하는 레이블을 사용하여 위의 자체 호스팅 GitHub Actions 실행기 사용 섹션의 지침을 따르십시오. 더 큰 GitHub호스트된 실행기를 사용하여 Windows를 사용하려면, Windows 실행기 레이블을 사용하여 상기 더 큰 실행기로 업그레이드 섹션의 지침을 따르십시오.

Git 대용량 파일 저장소(LFS) 활성화

Git LFS(큰 파일 스토리지)를 사용하여 리포지토리에 큰 파일을 저장하는 경우 Git LFS를 설치하고 LFS 개체를 페치하도록 환경을 사용자 지정 Copilot해야 합니다.

Git LFS를 사용하도록 설정하려면 actions/checkout 옵션을 copilot-setup-steps로 설정하여 lfs 작업에 true 단계를 추가합니다.

YAML
# ...

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read # for actions/checkout
    steps:
      - uses: actions/checkout@v6
        with:
          lfs: true

          Copilot 환경에서 환경 변수 설정하기

환경의 환경 변수를 설정하여 액세스 권한이 있는 Copilot도구 또는 종속성을 구성하거나 인증할 수 있습니다.

환경 변수Copilot를 설정하거나, copilot 환경에서 변수 또는 비밀GitHub Actions을 만들 수 있습니다. 값에 중요한 정보(예: 암호 또는 API 키)가 포함된 경우 비밀을 사용하는 GitHub Actions 것이 가장 좋습니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 Settings를 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "설정" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 왼쪽 사이드바에서 환경을 클릭합니다.

  4.        `copilot` 환경을 클릭합니다.
    
  5. 비밀을 추가하려면 "Environment secrets"에서 환경 비밀 추가를 클릭합니다. 변수를 추가하려면 "환경 변수"에서 환경 변수 추가를 클릭하세요.

  6. "이름" 및 "값" 필드를 입력한 후, 비밀 추가 또는 변수 추가를 적절하게 클릭합니다.

추가 읽기