참고
GitHub Code Quality은(는) 현재 공개 미리 보기에 있으며 변경될 수 있습니다. 공개 미리 보기에서 Code Quality은(는) 요금이 청구되지 않지만 Code Quality 스캔은 GitHub Actions 분을 소모합니다.
이 문서에서는 에서 사용하는 Code Quality메트릭 및 등급에 대한 정의를 제공합니다.
리포지토리의 규칙 기반 결과는 " Security and quality" 아래의 **** 탭의 표준 결과 탭에서 볼 수 있습니다.
메트릭 정의
다음 표에서는 리포지토리에 대해 보고되는 각 메트릭에 대한 정의를 제공합니다.
| Metric | Definition | 예제 결과 |
|---|---|---|
| Reliability | 코드가 의도한 함수를 올바르게, 예측 가능하게, 일관되게 수행하는지 평가합니다. 신뢰할 수 있는 코드는 버그로부터 자유롭고, 오류를 안전하게 처리하며, 정상 및 에지 케이스 조건에서 예상대로 작동합니다. | 성능, 동시성, 오류 처리, 정확성, API 디자인, 접근성, 국제화 또는 보안 관련 문제 |
| 유지 관리 | 시간이 지남에 따라 코드를 이해하고 수정하고 확장하는 것이 얼마나 쉬운지 평가합니다. 유지 관리 가능한 코드는 모범 사례를 따르고, 불필요한 복잡성을 방지하며, 향후 변경 및 공동 작업의 용이성을 위해 구성됩니다. | 모범 사례를 사용하지 않음, 사장된/사용되지 않는 코드, 중복 코드, 복잡성 문제, 논리적 중복성, 불충분한 문서화, 종속성 문제 |
심각도 수준
심각도 수준은 코드 품질 발견의 잠재적 영향 또는 긴급성을 나타내는 데 사용됩니다. 사용자가 수정 작업의 우선 순위를 지정하고 관련자에게 위험을 전달하는 데 도움이 됩니다. 심각도는 문제를 감지한 규칙에 따라, CodeQL 등의 관례와 업계 표준을 준수하여 결정됩니다.
| 심각도 | Definition | |-----------|--------------------| | Error | 버그, 오류 또는 주요 유지 관리 위험의 원인이 될 가능성이 높은 심각도 문제를 나타냅니다. | | 경고 | 코드 품질 또는 안정성에 영향을 미칠 수 있지만 즉시 중요하지는 않은 보통 심각도 문제를 나타냅니다. | | 참고 | 심각도가 낮은 문제, 사소한 개선 또는 권장 사항을 나타냅니다. 이러한 결과는 지속적인 코드 상태 및 유지 관리에 유용합니다. |
등급 정의
이러한 등급은 기본 분기에서 CodeQL 검사가 검출한 규칙 기반 결과의 심각도에 따라 리포지토리의 전반적인 신뢰도 및 유지 관리 가능성을 요약하는 데 사용됩니다.
| Rating | Definition | 조건(결과 기반) |
|---|---|---|
| 우수 | 코드베이스는 안정성 및 유지 관리에 대한 모범 사례를 보여 줍니다. | 코드 품질 문제가 발견되지 않음 |
| 좋은 | 코드베이스에 심각도가 낮은 문제가 있거나 사소한 개선 사항이 제안됩니다. | ≥1 "Note" 수준의 결과 |
| 보통 | 코드베이스에는 품질에 영향을 미칠 수 있지만 중요하지 않은 보통 심각도 문제가 있습니다. | ≥1 "경고" 수준 찾기 |
| 개선 필요 | 코드베이스에는 버그 또는 주요 유지 관리 위험 등 심각도가 높은 문제가 있습니다. | "오류 수준의 결과가 1개 이상 있음" |
코드 커버리지
코드 커버리지는 테스트 스위트를 실행할 때 소스 코드 중 몇 퍼센트가 실행되는지를 측정합니다. Code Quality 는 Cobertura XML 검사 보고서를 업로드한 후 끌어오기 요청에 대한 검사 백분율을 표시합니다.
적용 범위 계산 방법
검사 비율은 테스트에 포함된 줄 수를 총 줄 수로 나눈 값(백분율로 표시됨)을 나타냅니다. Code Quality는 각 브랜치(기본 브랜치 포함)에 대한 최신 업로드를 저장하고 PR 브랜치의 커버리지를 기본 브랜치의 커버리지와 비교합니다.
예를 들어 기본 브랜치의 커버리지가 44%이고 PR 브랜치의 커버리지가 65%라면, PR의 커버리지는 21퍼센트포인트 증가한 것입니다.
파일별 델타
끌어오기 요청에 대한 파일별 분석은 수정된 각 파일에 대한 적용 범위가 변경된 방법을 보여 줍니다. 양수 델타는 기본 브랜치와 비교했을 때 PR 브랜치에서 해당 파일의 커버리지가 늘어났음을 의미합니다.
리포지토리에 대한 코드 검사를 설정하려면 Setting up code coverage for your repository을 참조하세요.