참고
GitHub Code Quality은(는) 현재 공개 미리 보기에 있으며 변경될 수 있습니다. 공개 미리 보기에서 Code Quality은(는) 요금이 청구되지 않지만 Code Quality 스캔은 GitHub Actions 분을 소모합니다.
소개
본 튜토리얼은 변경 사항으로 인해 실수로 발생할 수 있는 코드 품질 문제를 식별하기 위해 풀 요청 시 GitHub Code Quality를 이용하는 방법을 보여주고, Copilot 자동 수정 및 Copilot 코딩 도우미를 사용하여 코드 품질 문제를 해결하는 방법을 안내합니다.
문제를 조기에 catch할 경우의 이점
코드 품질 문제를 조기에 발견하면 팀의 코드베이스를 잘 유지할 수 있습니다. GitHub Code Quality 코드에서 다음을 확인합니다.
-
**안정성**: 예를 들어 논리 오류, 안전하지 않은 오류 처리 또는 앱이 충돌하거나 예측 불가능한 동작을 일으킬 수 있는 경합 조건을 포함합니다. 이러한 유형의 문제를 조기에 해결하면 소프트웨어를 더욱 강력하고 신뢰할 수 있게 만들 수 있습니다. -
**유지 관리:** 예를 들어 중복된 코드, 지나치게 복잡한 논리, 사용되지 않는 변수 또는 코딩 모범 사례 위반입니다. 이러한 문제를 해결하면 코드를 더 쉽고 쉽게 읽을 수 있으므로 향후 변경 내용이 더 빠르고 위험하지 않습니다.
1. GitHub Code Quality가 풀 요청에 어떻게 작동하는지 이해합니다.
풀 요청을 열면 GitHub Code Quality는 CodeQL를 사용하여 사용자의 변경 내용에서 위와 같은 품질 문제를 자동으로 스캔합니다.
CodeQL 스캔 결과는 풀 요청에 대한 주석으로 기록되며, github-code-quality[bot]에서 기록을 남깁니다. 각 주석은 변경 내용에서 발견된 특정 코드 품질 문제에 해당하며 제안된 자동 수정과 함께 제공됩니다.
주석은 심각도(오류, 경고, 참고)로 레이블이 지정되므로 가장 중요한 결과를 확인할 수 있습니다.
2. 심각도에 따라 수정의 우선 순위 지정
주석을 검색하고 심각도가 가장 높은 결과("오류")를 먼저 식별합니다.
"오류" 결과가 없는 경우 다음 심각도 수준("경고")의 결과를 찾습니다.
심각도가 높은 결과는 코드베이스에 안정성 또는 유지 관리 문제를 발생시킬 가능성이 더 높은 더 심각한 코드 품질 문제를 나타냅니다. 심각도가 높은 결과를 해결하면 팀 코드의 품질을 유지하기 위해 가장 영향력 있는 작업을 수행하게 됩니다.
참고
리포지토리 관리자가 코드 품질 게이트를 설정한 경우, 특정 심각도 이상의 Code Quality 결과가 포함된 풀 리퀘스트에서는 병합이 차단될 수 있습니다. 끌어오기 요청에서 블록 해결을(를) 참조하세요.
3. Copilot 자동 수정나 Copilot 코딩 도우미를 이용해 문제의 결과를 수정합니다.
Copilot 코딩 도우미
개발 에이전트를 사용하여 발견된 문제 수정하기
4. 관련 없는 조사 결과 해제
다시 사용 가능한 코드 품질. 관련 없는 결과 무시 %}
5. 변경 내용을 푸시하고 검사를 기다립니다.
결과를 수정하거나 해제한 후 끌어오기 요청과 연결된 분기에 변경 내용을 푸시합니다. GitHub Code Quality는 변경 내용을 자동으로 다시 검사하고 pull request에 대한 코멘트를 업데이트합니다.
6. 리포지토리의 코드 품질 등급 확인
쓰기 액세스 권한이 있는 사용자는 리포지토리에 대한 전체 코드 품질 등급을 볼 수 있으며, 기본 분기에서 코드의 안정성 및 유지 관리 가능성을 요약합니다.
리포지토리의 등급을 보려면 리포지토리의 보안 탭으로 이동하고 사이드바에서 코드 품질 를 확장한 다음 표준 결과 를 클릭합니다.
끌어오기 요청을 병합하기 전에 문제를 해결함으로써 이러한 등급을 유지하는 데 직접 기여했습니다.
다음 단계
- 기본 분기의 코드 품질 결과를 해결하고 리포지토리의 안정성 및 유지 관리 등급에 대해 이해합니다. 리포지토리 코드의 품질 향상을(를) 참조하세요.
-
[커뮤니티 토론](https://github.com/orgs/community/discussions/177488)에서 GitHub Code Quality와 관련해 피드백을 제공하세요.