Copilot 코딩 도우미의 개발 환경 사용자 지정 정보
작업을 하는 동안 Copilot는 코드 탐색, 변경, 자동화 테스트, 린터 실행 등의 작업을 수행할 수 있는 GitHub Actions에서 제공하는 임시 개발 환경에 액세스합니다.
[Copilot](#customizing-copilots-development-environment-with-copilot-setup-steps)의 개발 환경을 [Copilot 설치 단계 파일](#customizing-copilots-development-environment-with-copilot-setup-steps)을 사용하여 맞춤화할 수 있습니다. Copilot의 설치 단계 파일을 사용하여 다음 작업을 수행할 수 있습니다.
* Copilot의 환경에 도구 또는 종속성을 사전 설치
-
[표준 GitHub 호스팅 GitHub Actions 실행기를 대규모 실행기로 업그레이드](#upgrading-to-larger-github-hosted-github-actions-runners) -
[GitHub Actions 자체 호스팅 실행기에서 실행](#using-self-hosted-github-actions-runners) -
[Copilot](#switching-copilot-to-a-windows-development-environment)에 기본 Ubuntu Linux 환경에서 벗어나 Windows 기반의 개발 환경으로 전환하여 구성해 보시기 바랍니다. -
[Git Large File Storage(LFS) 활성화](#enabling-git-large-file-storage-lfs)
추가로, 다음을 수행할 수 있습니다.
-
[Copilot의 환경에서 환경 변수 설정](#setting-environment-variables-in-copilots-environment) -
[에이전트의 방화벽을 사용하지 않도록 설정하거나 사용자 지정](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent).
Copilot 설정 단계를 통해 개발 환경에서 Copilot를 사용자 맞춤 설정하세요
리포지토리의 .github/workflows/copilot-setup-steps.yml에 있는 특수 GitHub Actions 워크플로 파일을 통해 Copilot 환경을 맞춤 설정할 수 있습니다.
`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 언어 및 종속성에 맞게 사용자 지정해야 합니다.
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:
# ...
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 (아래 내용 참조)
servicessnapshot-
`timeout-minutes` (최대 값: `59`)
이러한 옵션에 대한 자세한 내용은 GitHub Actions에 대한 워크플로 구문 참조하세요.
작업의 fetch-depth옵션actions/checkout에 설정된 값은 에이전트가 요청 시 커밋을 롤백할 수 있도록 재정의되는 한편 보안 위험을 완화합니다. 자세한 내용은 actions/checkout/README.md 참조하세요.
변경될 때 copilot-setup-steps.yml 파일이 자동으로 일반 GitHub Actions 워크플로로 실행되므로 파일이 성공적으로 실행되는지 확인할 수 있습니다. 이는 파일을 만들거나 수정하는 끌어오기 요청의 다른 검사와 함께 표시됩니다.
yml 파일을 기본 분기에 병합하면 모든 것이 예상대로 작동하는지 확인하기 위해 언제든지 리포지토리의 작업 탭에서 워크플로를 수동으로 실행할 수 있습니다. 자세한 내용은 수동으로 워크플로 실행을(를) 참조하세요.
Copilot이 작업을 시작하면 설정 단계가 실행되고 업데이트가 세션 로그에 표시됩니다. GitHub 코필로트의 세션 추적을(를) 참조하세요.
어떤 설정 단계에서든 0이 아닌 종료 코드를 반환하여 실패할 경우, Copilot는 현재 개발 환경 상태로 나머지 설정 단계를 건너뛰고 작업을 시작합니다.
Copilot의 환경에 도구 또는 종속성을 사전 설치
임시 개발 환경에서 Copilot은 프로젝트를 빌드 또는 컴파일할 수 있고, 자동화 테스트, Linter 및 기타 도구를 실행할 수 있습니다. 이를 수행하려면, 귀하의 프로젝트 종속성을 설치해야 합니다.
Copilot은 시행착오 과정을 통해 이러한 종속성을 스스로 발견하고 설치할 수 있지만, LLM(대규모 언어 모델)의 비결정적 특성 때문에 이 과정이 느리거나 신뢰할 수 없을 수 있습니다. 따라서 경우에 따라(예: 비공개 종속성인 경우) 종속성을 다운로드할 수 없는 경우도 있습니다.
Copilot이(가) 작업을 시작하기 전에 Copilot 설치 단계 파일을 사용하여 도구 또는 종속성을 결정적으로 설치할 수 있습니다. 이를 위해 copilot-setup-steps 작업에 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@v5
- 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 프라이빗 네트워킹과 같은 고급 기능을 위해 더 큰 실행기로 업그레이드할 수 있습니다. 자세한 내용은 더 큰 주자들 참조하세요.
-
조직에 더 큰 러너를 설정합니다. 자세한 내용은 대형 런너 관리하기 참조하세요.
-
Azure 프라이빗 네트워킹 환경에서 대규모 실행기를 사용할 때는 Copilot 코딩 도우미가 필요한 호스트에 아웃바운드로 액세스할 수 있도록 Azure 프라이빗 네트워크를 구성해야 합니다.
uploads.github.comuser-images.githubusercontent.com-
`api.individual.githubcopilot.com` (Copilot Pro 또는 Copilot Pro+ 사용자가 귀하의 리포지토리에서 Copilot 코딩 도우미를 사용할 것으로 예상되는 경우) -
`api.business.githubcopilot.com`(코파일럿 사업 사용자가 귀하의 저장소에서 Copilot 코딩 도우미를 사용할 것으로 예상하는 경우) -
`api.enterprise.githubcopilot.com` (Copilot Enterprise 사용자가 리포지토리에서 Copilot 코딩 도우미를 사용할 것으로 예상되는 경우) - 타사 에이전트 OpenAI Codex를 사용하는 경우(자세한 내용은 타사 에이전트 정보 참조):
npmjs.orgnpmjs.comregistry.npmjs.comregistry.npmjs.orgskimdb.npmjs.com
-
리포지토리의
copilot-setup-steps.yml파일을 통해 Copilot 코딩 도우미를 선택된 실행기에서 실행하도록 설정합니다. 더 큰 실행기에서 Copilot을(를) 활용하여runs-on작업copilot-setup-steps단계를 레이블 및/또는 그룹으로 구성합니다.runs-on를 사용하여 더 큰 실행기를 지정하는 방법에 대한 자세한 내용은 더 큰 실행기에서 작업 실행를 참조하시기 바랍니다.# ... jobs: copilot-setup-steps: runs-on: ubuntu-4-core # ...
참고
- Copilot 코딩 도우미는 Ubuntu x64 Linux와 Windows 64비트 실행기에서만 작동합니다. 현재 macOS 및 기타 운영 체제용 실행기는 지원하지 않습니다.
자체 호스팅되는 GitHub Actions 러너를 활용하세요.
자체 호스팅 러너 환경에서 Copilot 코딩 도우미의 실행이 가능합니다. 이 작업을 수행하면 GitHub Actions에서 CI/CD 워크플로우를 실행하는 방식과 일치시키거나, Copilot가 네트워크 내 내부 리소스에 접근할 수 있도록 설정할 수 있습니다.
Copilot 코딩 도우미는 여러 작업에 재사용되지 않고 임시로만 활용되는 일회용 실행기에서 사용할 것을 권장합니다. 대부분의 고객은 ARC(Actions Runner 컨트롤러) 또는 GitHub Actions Runner Scale Set 클라이언트를 사용하여 이 설정을 지정합니다. 자세한 내용은 자체 호스팅 실행기 참조을(를) 참조하세요.
참고
Copilot 코딩 도우미는 Ubuntu x64 Linux 및 Windows 64비트 실행 환경에서만 지원됩니다. 현재 macOS 및 기타 운영 체제용 실행기는 지원하지 않습니다.
-
Copilot 코딩 도우미이 네트워크나 공용 인터넷에 자유롭게 액세스하지 않도록 GitHub Actions 실행기용 네트워크 보안 컨트롤을 구성하세요.
[GitHub Actions 자체 호스팅 실행기에 필요한 표준 호스트](/actions/reference/runners/self-hosted-runners#accessible-domains-by-function)와 다음 호스트에 대한 연결을 허용하도록 방화벽을 구성해야 합니다.uploads.github.comuser-images.githubusercontent.com-
`api.individual.githubcopilot.com` (Copilot Pro 또는 Copilot Pro+ 사용자가 귀하의 리포지토리에서 Copilot 코딩 도우미를 사용할 것으로 예상되는 경우) -
`api.business.githubcopilot.com`(코파일럿 사업 사용자가 귀하의 저장소에서 Copilot 코딩 도우미를 사용할 것으로 예상하는 경우) -
`api.enterprise.githubcopilot.com` (Copilot Enterprise 사용자가 리포지토리에서 Copilot 코딩 도우미를 사용할 것으로 예상되는 경우) - 타사 에이전트 OpenAI Codex를 사용하는 경우(자세한 내용은 타사 에이전트 정보 참조):
npmjs.orgnpmjs.comregistry.npmjs.comregistry.npmjs.orgskimdb.npmjs.com
-
리포지토리 설정에서 Copilot 코딩 도우미의 통합 방화벽을 사용하지 않도록 설정합니다. 방화벽은 자체 호스팅 실행기와 호환되지 않습니다. 사용하지 않도록 설정하지 않으면 Copilot 코딩 도우미의 사용이 차단됩니다. 자세한 내용은 GitHub Copilot 코딩 에이전트에 대한 방화벽 사용자 지정 또는 비활성화을(를) 참조하세요.
-
`copilot-setup-steps.yml` 파일에서 `runs-on` 속성을 ARC 관리 확장 집합 이름으로 설정합니다.# ... jobs: copilot-setup-steps: runs-on: arc-scale-set-name # ... -
Copilot 코딩 도우미의 인터넷 연결을 위해 프록시 서버를 구성하려면, 다음의 환경 변수를 적절하게 설정하세요.
변수 Description 예시 https_proxyHTTPS 트래픽에 대한 프록시 URL입니다. 필요한 경우 기본 인증을 포함할 수 있습니다. http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.localhttp_proxyHTTP 트래픽에 대한 프록시 URL입니다. 필요한 경우 기본 인증을 포함할 수 있습니다. http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.localno_proxy프록시를 바이패스해야 하는 호스트 또는 IP 주소의 쉼표로 구분된 목록입니다. 일부 클라이언트는 호스트 이름이 아닌 IP에 직접 연결되는 경우에만 IP 주소를 적용합니다. example.comexample.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에서 project 빌드하고, 테스트를 실행하고, 해당 작업의 유효성을 검사할 수 있습니다.
Copilot 코딩 도우미에 통합된 방화벽은 Windows와 호환되지 않으므로, 자체 호스팅 러너 또는 자체 네트워크 제어를 구현할 수 있는 Azure 프라이빗 네트워킹이 적용된 대규모 GitHub 호스팅 러너만 사용할 것을 권장합니다. Azure 프라이빗 네트워킹과 연동한 실행기에 대한 자세한 내용은 엔터프라이즈에서 GitHub에서 호스팅하는 러너를 위한 Azure 프라이빗 네트워킹에 대한 정보을 참조하세요.
Windows에서 자체 호스팅 실행기를 사용하려면, 자체 호스팅 GitHub Actions 실행기 사용 섹션의 Windows 실행기 레이블 관련 지침을 따르세요. 더 큰 GitHub 호스팅 실행기에서 Windows를 사용하려면, 위의 더 큰 실행기로 업그레이드 섹션에서 Windows 실행기 레이블을 사용하는 방법을 참고하세요.
Git 대용량 파일 저장소(LFS) 활성화
Git Large File Storage (LFS)를 사용하여 리포지토리에 큰 파일을 저장하는 경우, Copilot의 환경을 사용자 지정하여 Git LFS를 설치하고 LFS 객체를 페치해야 합니다.
Git LFS를 사용하도록 설정하려면 actions/checkout 옵션을 copilot-setup-steps로 설정하여 lfs 작업에 true 단계를 추가합니다.
# ...
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout
steps:
- uses: actions/checkout@v5
with:
lfs: true
# ...
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout
steps:
- uses: actions/checkout@v5
with:
lfs: true
Copilot의 환경에서 환경 변수 설정
액세스 권한이 있는 도구 또는 종속성을 구성하거나 인증하기 위해 Copilot의 환경에서 환경 변수를 설정할 수 있습니다.
Copilot에 대한 환경 변수를 설정하려면 GitHub Actions 변수 또는 비밀을 copilot 환경에서 만듭니다. 값에 암호 또는 API 키와 같은 민감한 정보가 포함되는 경우 GitHub Actions 비밀을 사용하는 것이 가장 좋습니다.
-
GitHub에서 리포지토리의 기본 페이지로 이동합니다.
-
리포지토리 이름 아래에서 Settings를 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

-
왼쪽 사이드바에서 환경을 클릭합니다.
-
`copilot`상자를 클릭하세요. -
비밀을 추가하려면 "Environment secrets"에서 환경 비밀 추가를 클릭합니다. 변수를 추가하려면 "환경 변수"에서 환경 변수 추가를 클릭하세요.
-
"이름" 및 "값" 필드를 입력한 후, 비밀 추가 또는 변수 추가를 적절하게 클릭합니다.
추가 참고 자료
-
[AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)