참고 항목
Copilot 코딩 에이전트 is in 공개 미리 보기 and subject to change. During the preview, use of the feature is subject to GitHub 시험판 사용 조건.
이슈의 범위가 올바른지 확인
GitHub Copilot은 명확한 범위의 작업이 할당될 때 더 나은 결과를 제공합니다. 이상적인 작업에는 다음이 포함됩니다.
- 해결해야 할 문제 또는 필요한 작업에 대한 명확한 설명
- 좋은 솔루션의 모습에 대한 완전한 수용 조건(예: 단위 테스트가 있어야 하나요?).
- 변경해야 하는 파일에 대한 지침.
이슈를 할당하여 Copilot에 작업을 전달하는 경우 Copilot에 할당하는 이슈를 프롬프트로 생각하는 것이 유용합니다. 이슈 설명이 AI 프롬프트로 작동할 가능성이 있는지, 그리고 Copilot이 필요한 코드 변경을 할 수 있도록 할 지를 고려합니다.
Copilot에 제공할 유요한 작업 유형 선택
Copilot을 사용하여 작업할 때 가장 적합한 작업 유형을 파악할 수 있습니다. 처음에는 Copilot에 더 간단한 작업을 제공하여 코딩 에이전트로 작동하는 방식을 확인할 수 있습니다. 예를 들어 먼저 Copilot에 버그 수정, 사용자 인터페이스 기능 변경, 테스트 적용 범위 개선, 설명서 업데이트, 접근성 향상 또는 기술적인 문제 해결을 요청할 수 있습니다.
Copilot에 할당하지 않고 직접 작업하도록 선택할 수 있는 이슈는 다음과 같습니다.
-
복잡하고 광범위한 작업
- 리포지토리 간 지식과 테스트가 필요한 광범위하고 다양한 컨텍스트 리팩터링 문제
- 종속성 및 레거시 코드를 이해해야 하는 복잡한 이슈
- 심층 도메인 지식이 필요한 작업
- 상당한 비즈니스 논리를 포함하는 작업
- 디자인 일관성이 필요한 코드베이스의 대대적 변경
-
민감하고 중요한 작업
- 프로덕션에 중요한 이슈
- 보안, 개인 식별 정보, 인증 영향과 관련된 작업
- 인시던트 대응
-
모호한 작업
- 명확한 정의가 부족한 작업: 모호한 요구 사항이 있는 작업, 개방형 작업, 불확실성을 극복하면서 솔루션을 찾아야 하는 작업
-
학습 작업
- 개발자가 더 심층적인 이해를 위해 배우려고 하는 작업
주석을 사용하여 끌어오기 요청 반복
끌어오기 요청에 대해 Copilot으로 작업하는 것은 인간 개발자와 작업하는 것과 같습니다. 끌어오기 요청이 병합되기 전에 추가 작업이 필요한 경우는 일반적입니다. 끌어오기 요청을 병합 가능한 상태로 가져오는 프로세스는 Copilot이 끌어오기 요청을 만들 때 인간이 만들 때와 똑같습니다. 원하는 경우 기능 분기에서 직접 작업하고 변경 내용을 끌어오기 요청에 푸시할 수 있습니다. 그러나, 잘못되었거나 개선될 수 있다고 생각되는 것을 설명하는 등 끌어오기 요청에 설명을 추가하고 Copilot이 필요한 변경을 수행하도록 둘 수 있습니다.
Copilot이 쓰기 권한이 있는 사용자가 설명을 제출하는 즉시 모든 설명을 읽고 조치가 필요한지 여부를 결정합니다. 그런 다음 필요한 변경을 시작하고 완료되면 끌어오기 요청을 업데이트합니다. Copilot은 설명이 제출되는 즉시 살펴보기 때문에 끌어오기 요청에 여러 번 설명을 제출할 가능성이 크다면 Add single comment를 클릭하지 않고 Start a review를 클릭하여 설명을 일괄 처리하는 것이 가장 좋습니다. 그런 다음 모든 설명을 한 번에 제출하여, Copilot이 개별 설명에 대해 개별적으로 작업하지 않고 전체 검토에서 작업하도록 할 수 있습니다.
참고 항목
Copilot only responds to comments from people who have write access to the repository.
리포지토리에 사용자 지정 지침 추가
리포지토리에 사용자 지정 지침을 추가하여, 프로젝트를 이해하고, 프로젝트의 변경 내용을 작성 및 테스트하고 유효성을 검사하는 방법에 대해 Copilot을 안내할 수 있습니다.
Copilot이 자체 개발 환경에서 변경 내용을 작성 및 테스트하고 유효성을 검사할 수 있는 경우, 신속하게 병합할 수 있는 적절한 끌어오기 요청을 생성할 가능성이 높습니다.
리포지토리의 .github/copilot-instructions.md
파일에 지침을 추가하세요. 자세한 내용은 GitHub Copilot에 대한 리포지토리 사용자 지정 지침 추가을(를) 참조하세요.
다음은 유효 copilot-instructions.md
파일의 예입니다.
This is a Go based repository with a Ruby client for certain API endpoints. It is primarily responsible for ingesting metered usage for GitHub and recording that usage. Please follow these guidelines when contributing:
## Code Standards
### Required Before Each Commit
- Run `make fmt` before committing any changes to ensure proper code formatting
- This will run gofmt on all Go files to maintain consistent style
### Development Flow
- Build: `make build`
- Test: `make test`
- Full CI check: `make ci` (includes build, fmt, lint, test)
## Repository Structure
- `cmd/`: Main service entry points and executables
- `internal/`: Logic related to interactions with other GitHub services
- `lib/`: Core Go packages for billing logic
- `admin/`: Admin interface components
- `config/`: Configuration files and templates
- `docs/`: Documentation
- `proto/`: Protocol buffer definitions. Run `make proto` after making updates here.
- `ruby/`: Ruby implementation components. Updates to this folder should include incrementing this version file using semantic versioning: `ruby/lib/billing-platform/version.rb`
- `testing/`: Test helpers and fixtures
## Key Guidelines
1. Follow Go best practices and idiomatic patterns
2. Maintain existing code structure and organization
3. Use dependency injection patterns where appropriate
4. Write unit tests for new functionality. Use table-driven unit tests when possible.
5. Document public APIs and complex logic. Suggest changes to the `docs/` folder when appropriate
MCP(모델 컨텍스트 프로토콜) 사용
MCP를 사용하여 Copilot 코딩 에이전트의 기능을 확장할 수 있습니다. 이렇게 하면 Copilot 코딩 에이전트가 로컬 MCP 서버에서 제공하는 도구를 사용할 수 있습니다. 자세한 내용은 MCP(모델 컨텍스트 프로토콜)를 사용하여 Copilot 코딩 에이전트 확장을(를) 참조하세요.
GitHub Copilot의 환경에 종속성 사전 설치
작업을 수행하는 동안 Copilot은 GitHub Actions로 구동되는 자체 임시 개발 환경에 액세스할 수 있습니다. Copilot은 사용자의 코드를 살펴보고, 필요한 부분을 변경하고, 자동화된 테스트 및 Linter를 실행하는 등의 작업을 진행할 수 있습니다.
Copilot이 자체 개발 환경에서 변경 내용을 작성 및 테스트하고 유효성을 검사할 수 있는 경우, 신속하게 병합할 수 있는 적절한 끌어오기 요청을 생성할 가능성이 높습니다.
그렇게 하려면 프로젝트의 종속성이 필요합니다. Copilot은 시행착오를 통해 종속성을 스스로 발견하고 설치할 수 있지만, LLM(대규모 언어 모델)의 비결정적인 특성 때문에 이 과정이 느리거나 신뢰할 수 없을 수 있습니다.
에이전트가 작업을 시작하기 전에 빠르게 적응할 수 있도록 이러한 종속성을 사전 설치하도록 copilot-setup-steps.yml
파일을 구성할 수 있습니다. 자세한 내용은 Copilot 코딩 에이전트의 개발 환경 사용자 지정을(를) 참조하세요.