Copilot Autofix는 코드 검색 경고에 대한 제안된 수정 사항을 생성하는 Azure DevOps GitHub 고급 보안의 AI 기반 기능입니다. CodeQL이 취약성 또는 코딩 오류를 식별하는 경우 고급 보안 탭에서 직접 경고에 대한 수정 사항을 생성할 수 있습니다. Copilot Autofix는 Copilot 코딩 에이전트를 사용하여 수정을 생성하고 제안된 변경 내용으로 끌어오기 요청을 열어 일반적인 끌어오기 요청 워크플로를 통해 검토, 편집 및 병합할 수 있습니다.
메모
이 기능은 제한된 공개 미리 보기로 제공됩니다. 미리 보기에 등록하는 모든 사용자가 액세스 권한을 받는 것은 아닙니다.
Azure DevOps용 GitHub Advanced Security가 필요하거나, 독립 실행형 환경을 사용하는 경우에는 Azure DevOps용 GitHub Code Security를 사용하도록 설정해야 하며, 리포지토리에 대해 코드 검사가 구성되어 있어야 합니다.
Azure DevOps용 GitHub 고급 보안은 Azure Repos와 함께 작동합니다. GitHub 리포지토리에서 GitHub Advanced Security를 사용하려면 GitHub Advanced Security를 참조하세요.
사전 요구 사항
| 카테고리 | Requirements |
|---|---|
| 권한 | - 리포지토리에 대한 모든 경고 요약을 보려면 기여자 권한이 필요합니다. - 고급 보안에서 경고를 해제하려면: Project 관리자 권한 - 고급 보안을 관리하려면: Project 컬렉션 관리자 그룹의 멤버이거나 고급 보안: 설정 관리 권한을 허용으로 설정해야 합니다. |
고급 보안 권한에 대한 자세한 내용은 고급 보안 권한 관리를 참조하세요.
- 기본 설정 또는 고급 설정을 사용하여 리포지토리에 대해 구성된 코드 검사입니다.
- 하나 이상의 CodeQL 코드 스캐닝 경고
Copilot Autofix 정보
Copilot Autofix는 CodeQL의 분석 능력을 Copilot 코딩 에이전트를 구동하는 큰 언어 모델과 결합합니다. 지원되는 코드 검색 경고에 대한 수정 사항을 생성할 때 Copilot Autofix는 경고 및 주변 코드를 분석한 다음 다음이 포함된 끌어오기 요청을 엽니다.
- 기본 취약성을 해결하는 제안된 코드 변경 입니다.
- 경고 ID, 심각도 및 변경 요약을 포함하여 수정 중인 경고에 대한 설명 입니다.
제안된 수정 사항은 코드 베이스의 광범위한 컨텍스트를 고려하므로 변경 내용이 경고가 발생한 한 줄 이상에 걸쳐 있고 필요한 경우 다른 파일의 변경 내용을 포함할 수 있습니다.
Important
Copilot 자동 수정 제안은 AI 모델이 생성한 것으로, 정확성, 완전성 또는 보안이 보장되지 않습니다. 항상 끌어오기 요청을 신중하게 검토하고, 새 문제를 도입하지 않고 경고를 해결하는지 확인하고, 병합하기 전에 변경 내용을 테스트합니다.
지원되는 언어
Copilot Autofix는 CodeQL이 C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby 및 Swift를 포함하여 코드 검색을 위해 분석하는 것과 동일한 언어를 지원합니다. 현재 CodeQL 지원 언어 목록은 언어 및 쿼리 지원을 참조하세요.
Copilot 자동 수정 활성화
코드 보안 설정의 일부로 리포지토리당 Copilot Autofix를 사용하도록 설정합니다.
- Azure DevOps 조직(
https://dev.azure.com/{yourorganization})에 로그인합니다. - Project 설정>리포지토리를 선택한 다음 구성하려는 리포지토리를 선택합니다.
- 고급 보안 섹션에서 코드 보안 기능 패널을 엽니다.
- Copilot 코딩 에이전트에서 생성한 코드 검색 경고에 대한 자동 수정을 만들려면 확인란을 선택합니다.
- 적용을 선택하여 변경 내용을 저장합니다.
CodeQL은 이미 실행 중이며 리포지토리에 대한 경고를 생성해야 합니다. 자세한 내용은 코드 검색 설정 및 GitHub 고급 보안 기능 구성을 참조하세요.
경고에 대한 수정 사항 생성
Copilot Autofix를 사용하도록 설정한 후 지원되는 코드 검색 경고에서 수정을 생성할 수 있습니다.
- Repos>고급 보안을 선택하세요.
- 코드 검색 탭을 선택한 다음 경고를 선택하여 세부 정보 보기를 엽니다.
- 경고의 위치, 설명 및 권장 사항을 검토하여 결과를 이해합니다.
- 수정 생성을 선택합니다.
Copilot Autofix는 수정 사항을 생성하고 copilot-autofix/... 분기에서 끌어오기 요청을 엽니다. 수정이 생성되면 끌어오기 요청이 경고 세부 정보 보기의 관련 끌어오기 요청 아래에 표시됩니다.
수정 사항 검토 및 병합
Copilot Autofix가 열리는 끌어오기 요청은 다른 Azure Repos 끌어오기 요청과 같이 동작합니다. 해당 설명은 수정 사항이 해결하는 경고를 요약합니다.
- 경고의 관련 풀 리퀘스트 섹션 또는 Repos>Pull requests에서 풀 리퀘스트를 엽니다.
- 영향을 받는 모든 파일에서 파일 탭에서 제안된 변경 사항을 검토합니다.
- 코드 스타일, 명명 규칙 또는 프로젝트 요구 사항과 일치해야 하는 경우 변경 내용을 편집합니다.
- 일반 검토 워크플로를 통해 끌어오기 요청을 승인하고 완료합니다.
끌어오기 요청이 병합되고 다음 코드 검사 실행이 완료되면 수정이 기본 취약성을 제거하면 경고가 자동으로 닫힙니다.
Tip
생성된 수정은 최종 답변이 아닌 시작점입니다. 끌어오기 요청을 다른 변경과 같이 처리합니다. 병합하기 전에 필요에 따라 검토, 테스트 및 추가 검토자를 요청합니다.
수정 사항을 사용할 수 없는 경우
Copilot Autofix는 모든 경고에 대한 수정을 생성할 수 없습니다. 다음과 같은 경우 수정을 사용할 수 없을 수 있습니다.
- 경고 유형은 현재 Copilot Autofix에서 지원되지 않습니다.
- Copilot은 해당 경고가 오탐이라고 판단합니다.
- CodeQL이 아닌 사용자 지정 쿼리 또는 타사 도구가 경고를 생성합니다.
수정 사항을 사용할 수 없는 경우 경고의 권장 사항 및 예제 섹션을 사용하여 수정하거나 경고를 수동으로 해제합니다. 자세한 내용은 경고 세부 정보참조하세요.