Skip to main content

리포지토리의 코드 품질 점수 올리기

가장 큰 위험을 초래하는 결과의 우선 순위를 지정하고 해결하며, 리포지토리의 코드 품질 점수를 높이고, 새 부채가 누적되지 않도록 방지합니다.

누가 이 기능을 사용할 수 있나요?

쓰기 권한이 있는 사용자

GitHub Team 또는 GitHub Enterprise Cloud

Introduction

이 자습서에서는 기본 분기에 대한 결과의 백로그 Code Quality 를 살펴보고, 위험에 따라 우선 순위를 지정하고, 가장 큰 영향을 미치는 결과를 해결하고, 결과를 이해 관계자에게 전달합니다. 다음 내용을 배웁니다.

  • 대시보드를 읽고 점수의 의미를 이해하는 방법입니다.
  • 해결 조치의 우선순위를 정하고 자동 수정을 적용할지, Copilot 클라우드 에이전트에 위임할지 또는 탐지 결과를 무시할지 결정하는 방법.
  • 수정 작업의 영향을 전달하는 방법입니다.
  • 백로그가 다시 증가하지 않도록 하기 위해 수행할 수 있는 추가 조치입니다.

이것은 단계별 안내이므로 속도보다 이해를 우선합니다. 자동 수정 생성 또는 탐지 결과 무시에 대한 기본 단계는 관련 가이드(리포지토리 백로그에서 코드 품질 결과 수정)를 참조하세요.

시작하기 전에

  • Code Quality 은 소유하거나 유지 관리하는 리포지토리에서 사용하도록 설정됩니다. GitHub Code Quality 사용을(를) 참조하세요.
  • 최근에 Code Quality를 활성화한 경우 기본 분기에 대한 초기 CodeQL 검사가 완료될 때까지 몇 분 정도 기다리세요.

이 자습서 전체에서는 실행 예제를 사용합니다. 대시보드에 현재 코드 품질에 대한 "안정성: 불량" 및 "유지 관리 가능성: 공정"의 점수가 표시되는 리포지토리가 있습니다.

1단계: 현재 점수 평가

  1. 리포지토리의 Security and quality 탭으로 이동합니다.
  2. 코드 품질 을(를) 확장하려면 클릭하고, 그런 다음 표준 결과 을(를) 클릭합니다.

여기서 는 안정성유지 관리에 대한 점수를 볼 수 있습니다.

표준 결과의 "Code Quality" 보기에서의 코드 품질 점수의 스크린샷

이 점수는 기본 브랜치에서 확인된 결과를 바탕으로 계산됩니다:

MetricDefinition예제 결과
Reliability코드가 의도한 함수를 올바르게, 예측 가능하게, 일관되게 수행하는지 평가합니다. 신뢰할 수 있는 코드는 버그로부터 자유롭고, 오류를 안전하게 처리하며, 정상 및 에지 케이스 조건에서 예상대로 작동합니다.성능, 동시성, 오류 처리, 정확성 관련 문제
유지 관리시간이 지남에 따라 코드를 이해하고 수정하고 확장하는 것이 얼마나 쉬운지 평가합니다. 유지 관리 가능한 코드는 모범 사례를 따르고, 불필요한 복잡성을 방지하며, 향후 변경 및 공동 작업의 용이성을 위해 구성됩니다.사용되지 않는/죽은 코드, 가독성, 복잡성, 충돌하는 명명, 우려 사항의 잘못된 분리

각 점수는 해당 지표에 대해 여전히 존재하는 발견 사항의 가장 높은 심각도에 따라 결정됩니다. 점수를 올리려면 현재 가장 높은 심각도 수준에서 모든 결과를 지워야 합니다.

이 예제에서는 안정성 에 영향을 주는 오류 수준 결과가 여전히 있기 때문에 안정성이 "불량"입니다. 경고 및 메모는 해결할 가치가 있지만 오류가 지워질 때까지 점수를 이동할 수 없습니다.

2단계: 규칙별로 목록을 읽고 가장 큰 영향을 주는 결과에 집중

보기에서 표준 결과 결과 규칙별로 그룹화됩니다. 이는 많은 결과를 가진 단일 규칙이 반복되는 코딩 습관을 반영할 수 있기 때문에 이해하는 데 유용합니다. 한 사례를 이해하고 나면 나머지 모든 항목에 대해 제안된 자동 수정도 더 쉽게 이해할 수 있으므로 수정 작업이 더 빨라지고 일괄 검토도 더 쉬워집니다.

또한 점수 중 하나에 대한 심각도 계층을 완료하는 규칙을 찾습니다. 규칙을 지우면 안정성에 영향을 주는 마지막 남은 "오류"가 제거되면 점수가 즉시 상승합니다.

이 예제에서는 "Overwritten property"라는 한 규칙이 128개의 탐지 항목 중 40개를 차지하며, 이 40개는 모두 Error 수준입니다. 이를 지우면 안정성에 영향을 주는 모든 오류 수준 검색이 제거되어 점수가 다음 대괄호로 이동합니다.

3단계: 결과 해결

규칙을 선택한 후에는 각 찾기를 처리하는 방법을 결정합니다.

Assessment권장 작업비고
발견은 합법적입니다.
수정 생성을 클릭하고 끌어오기 요청을 엽니다.
수정 생성을 클릭하면 AI credits이 소모됩니다. 여러 자동 수정을 같은 브랜치에 추가하여 수정 작업을 하나의 풀 리퀘스트로 묶을 수 있습니다.
발견은 적용되지 않습니다. 예를 들어, 레거시 코드에 있거나, 의도적인 패턴이거나, 오탐일 수 있습니다.
해제를 클릭합니다.발견은 확인된 것으로 간주되며 열려 있는 결과 목록에서 제거됩니다.

이 예제에서는 "덮어쓴 속성" 탐지 항목 40개에 대한 자동 수정을 생성하고 풀 리퀘스트를 엽니다. 단일 패턴을 공유하기 때문에 수정 사항은 거의 동일합니다. CI 검사가 통과되면 끌어오기 요청을 병합합니다.

4단계: 영향 전달

수정 사항을 병합한 후 "표준 결과" 화면으로 돌아가 다음을 캡처하세요:

  • 변경된 점수입니다. 예를 들어, 신뢰성: 낮음 → 보통.
  • 잠금을 해제한 요구 사항입니다. 예를 들어 안정성에 영향을 주는 모든 오류 수준 결과가 해결되었습니다.
  • 미해결 지적 사항의 감소. 예를 들어 128에서 88까지 열림.

이 예제에서 "덮어쓴 속성" 규칙을 지우면 안정성이 불량 에서 공정으로 이동합니다. 팀이 가리킬 수 있는 첫 번째 점수 개선 사항입니다.

이것이 코드 건전성의 다른 측면과 어떻게 관련되는지

오늘 해결한 모든 문제도 새 풀 리퀘스트에 동일한 유형의 문제가 유입되면 내일 다시 나타날 수 있습니다. 백로그 다시 생성을 중지하려면 다음을 수행합니다.

Troubleshooting

  • 수정 사항을 병합한 후에도 점수가 움직이지 않았습니다. 해당 메트릭의 현재 가장 높은 심각도 수준에서 하나 이상의 발견이 여전히 열려 있습니다.
  • 스캔이 다시 실행되지 않았습니다. Code Quality 스캔은 기본 브랜치에 푸시할 때마다 자동으로 실행됩니다. 워크플로가 완료되기까지 몇 분 정도 기다립니다.

결론

이 자습서에서는 저장소의 품질 점수를 평가하고, 심각도와 규칙에 따라 백로그 작업의 우선순위를 정하고, 자동 수정을 사용해 발견된 문제를 해결하고, 그 결과를 점수 변동으로 보여주었습니다.

다음 단계