Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

끌어오기 요청에서 코드 검사 경고 심사

code scanning에서 끌어오기 요청의 문제를 식별하는 경우 강조 표시된 코드를 검토하고 경고를 해결할 수 있습니다.

이 기능을 사용할 수 있는 사용자

If you have read permission for a repository, you can see annotations on pull requests. With write permission, you can see detailed information and resolve code scanning alerts for that repository.

Code scanning는 GitHub.com의 모든 퍼블릭 리포지토리에 사용할 수 있습니다. Code scanning는 또한 GitHub Enterprise Cloud를 사용하고 GitHub Advanced Security에 대한 라이선스가 있는 조직이 소유한 프라이빗 리포지토리에서 사용할 수 있습니다. 자세한 내용은 “GitHub Advanced Security 정보”를 참조하세요.

끌어오기 요청에 대한 code scanning 결과 정보

code scanning이 끌어오기 요청 확인으로 구성된 리포지토리에서 code scanning은 끌어오기 요청의 코드를 확인합니다. 기본적으로 이는 기본 분기를 대상으로 하는 끌어오기 요청으로 제한되지만, 이 구성은 GitHub Actions 내에서 또는 타사 CI/CD 시스템에서 변경할 수 있습니다. 변경 내용 병합으로 인해 대상 분기에 새 code scanning 경고가 발생하면 경고가 여러 위치에서 보고됩니다.

  • 끌어오기 요청에서 결과 확인
  • 끌어오기 요청의 대화 탭(끌어오기 요청 검토의 일부)
  • 끌어오기 요청의 변경된 파일

리포지토리에 대한 쓰기 권한이 있는 경우 보안 탭에서 기존 code scanning 경고를 볼 수 있습니다. 리포지토리 경고에 대한 자세한 내용은 "리포지토리에 대한 code scanning 경고 관리"를 참조하세요.

code scanning이(가) 코드가 푸시될 때마다 검사하도록 구성된 리포지토리에서 code scanning는 열려 있는 끌어오기 요청에 결과를 매핑하고 경고를 다른 끌어오기 요청 검사와 동일한 위치에 주석으로 추가합니다. 자세한 내용은 "code scanning 사용자 지정"을 참조하세요.

끌어오기 요청에서 code scanning을 사용하는 보호된 분기를 대상으로 하고 리포지토리 소유자가 필요한 상태 확인을 구성한 경우 끌어오기 요청을 병합하기 전에 먼저 "Code scanning 결과" 확인을 통과해야 합니다. 자세한 내용은 “보호된 분기 정보”를 참조하세요.

끌어오기 요청 확인으로서의 code scanning 정보

끌어오기 요청 검사로 code scanning을 구성하는 여러 옵션이 있으므로 각 리포지토리의 정확한 구성은 다르며 일부는 둘 이상의 검사를 받게 됩니다.

Code scanning 결과 확인

code scanning의 모든 구성에 대해 code scanning의 결과를 포함하는 확인은 Code scanning 결과입니다. 사용되는 각 분석 도구의 결과는 별도로 표시됩니다. 끌어오기 요청의 변경으로 인해 발생하는 모든 새 경고는 주석으로 표시됩니다.

분석된 분기에 대한 전체 경고 집합을 보려면 모든 분기 경고 보기를 클릭합니다. 그러면 형식, 심각도, 태그 등을 기준으로 분기의 모든 경고를 필터링할 수 있는 전체 경고 보기가 열립니다. 자세한 내용은 "리포지토리에 대한 코드 검사 경고 관리"를 참조하세요.

끌어오기 요청에 대한 Code scanning 결과 확인

Code scanning 결과 확인 실패

code scanning 결과 확인에서 심각도가 error, critical 또는 high인 문제가 있으면 확인이 실패하고 확인 결과에 오류가 보고됩니다. code scanning에서 찾은 모든 결과의 심각도가 낮으면 경고가 경고 또는 참고로 처리되고 확인이 성공합니다.

끌어오기 요청에 대한 code scanning 확인 실패

끌어오기 요청 확인 실패를 유발하는 심각도 및 보안 심각도 수준을 지정하여 리포지토리 설정의 기본 동작을 재정의할 수 있습니다. 자세한 내용은 "code scanning 사용자 지정"을 참조하세요.

기타 code scanning 확인

구성에 따라 code scanning이 구성된 끌어오기 요청에서 실행되는 추가 확인을 볼 수 있습니다. 이러한 확인은 일반적으로 코드를 분석하거나 code scanning 결과를 업로드하는 워크플로입니다. 이러한 확인은 분석 관련 문제가 있을 때 해당 문제를 해결하는 데 유용합니다.

예를 들어 리포지토리에서 CodeQL 분석 워크플로를 사용하는 경우 결과 검사가 실행되기 전에 각 언어에 대해 CodeQL / 분석(LANGUAGE) 검사가 실행됩니다. 구성 문제가 있거나 끌어오기 요청에서 분석을 컴파일해야 하는 언어(예: C/C++, C# 또는 Java)에 대한 빌드를 중단하는 경우 분석 확인이 실패할 수 있습니다.

다른 끌어오기 요청 검사와 마찬가지로 검사 탭에서 검사 실패에 대한 전체 세부 정보를 볼 수 있습니다. 구성 및 문제 해결에 대한 자세한 내용은 "code scanning 사용자 지정" 또는 "CodeQL 워크플로 문제 해결"을 참조하세요.

끌어오기 요청에 대한 경고 보기

대화 탭을 보면 끌어오기 요청에 도입된 code scanning 경고를 확인할 수 있습니다. Code scanning은 각 경고를 경고가 트리거된 코드 줄에 주석으로 표시하는 끌어오기 요청 검토를 게시합니다. 주석에서 직접 경고에 대해 주석을 달고, 경고를 해제하고, 경고의 경로를 볼 수 있습니다. "자세한 정보 표시" 링크를 클릭하여 경고 세부 정보 페이지로 이동하면 경고의 전체 세부 정보를 볼 수 있습니다.

끌어오기 요청 대화 탭 내의 경고 주석

끌어오기 요청의 변경된 파일 탭에서 모든 code scanning 경고를 볼 수도 있습니다. 끌어오기 요청에 도입된 변경 내용의 차이를 벗어나는 파일에 대한 기존 code scanning 경고는 변경된 파일 탭에만 표시됩니다.

리포지토리에 대한 쓰기 권한이 있는 경우 일부 주석에는 경고에 대한 추가 컨텍스트가 있는 링크가 포함됩니다. 위 예제의 CodeQL 분석에서 user-provided value(사용자 제공 값)를 클릭하여 신뢰할 수 없는 데이터가 데이터 흐름에 들어가는 위치(이를 원본이라고 함)를 확인할 수 있습니다. 이 경우 경로 표시를 클릭하여 원본에서 데이터를 사용하는 코드(싱크)까지의 전체 경로를 볼 수도 있습니다. 이렇게 하면 데이터를 신뢰할 수 없는지 또는 분석에서 원본과 싱크 간의 데이터 삭제 단계를 인식하지 못했는지를 쉽게 확인할 수 있습니다. CodeQL을 사용하여 데이터 흐름을 분석하는 방법에 대한 자세한 내용은 "데이터 흐름 분석 정보"를 참조하세요.

경고에 대한 자세한 내용을 보려면 쓰기 권한이 있는 사용자가 주석에 표시된 자세히 링크를 클릭할 수 있습니다. 이렇게 하면 경고 보기에서 도구가 제공하는 모든 컨텍스트 및 메타데이터를 볼 수 있습니다. 아래 예제에서는 문제에 대한 심각도, 형식 및 관련 CWE(Common Weakness Enumeration)를 보여 주는 태그를 볼 수 있습니다. 또한 보기에서는 문제가 발생한 커밋을 보여 줍니다.

경고 페이지에 있는 상태와 세부 정보는 경고가 다른 분기에 있는 경우에도 리포지토리의 기본 분기에 있는 경고의 상태만 반영합니다. 경고 페이지의 오른쪽에 있는 영향받는 분기 섹션에서 기본 분기가 아닌 분기에 대한 경고 상태를 볼 수 있습니다. 경고가 기본 분기에 없는 경우 경고 상태가 "끌어오기 요청 내" 또는 "분기 내"로 표시되고 회색으로 표시됩니다.

경고에 대한 자세한 보기에서 CodeQL 분석과 같은 일부 code scanning 도구에는 문제에 대한 설명 및 자세히 표시 코드를 수정하는 방법의 지침에 대한 링크도 포함되어 있습니다.

 경고 설명 및 링크 - 추가 정보 표시

끌어오기 요청에서 경고에 대한 주석 처리

끌어오기 요청의 변경 내용에 의해 도입된 code scanning 경고에 대해 주석을 달 수 있습니다. 경고는 끌어오기 요청 검토의 일부로 끌어오기 요청의 대화 탭에 주석으로 표시되며 변경된 파일 탭에도 표시됩니다. 끌어오기 요청의 변경 내용에 의해 도입된 경고에 대해서만 주석을 달 수 있습니다. 끌어오기 요청에 도입된 변경 내용을 벗어나는 파일에 대한 기존 code scanning 경고는 변경된 파일 탭에 표시되지만 주석을 달 수는 없습니다.

끌어오기 요청을 병합하기 전에 code scanning 경고에 대한 대화를 포함하여 끌어오기 요청의 모든 대화를 확인하도록 선택할 수 있습니다. 자세한 내용은 “보호된 분기 정보”를 참조하세요.

끌어오기 요청에 대한 경고 수정

끌어오기 요청에 대한 푸시 액세스 권한이 있는 사용자는 해당 끌어오기 요청에서 식별된 code scanning 경고를 수정할 수 있습니다. 끌어오기 요청에 대한 변경 내용을 커밋하면 끌어오기 요청 확인의 새 실행이 트리거됩니다. 변경 내용으로 문제가 해결되면 경고가 종료되고 주석이 제거됩니다.

끌어오기 요청에 대한 경고 해제

경고를 종료하는 다른 방법은 경고를 해제하는 것입니다. 수정할 필요가 없다고 생각되면 경고를 해제할 수 있습니다. 예를 들어 테스트에만 사용되는 코드의 오류 또는 오류를 수정하는 데 드는 노력이 코드 개선의 잠재적 이점보다 큰 경우입니다. 리포지토리에 대한 쓰기 권한이 있는 경우 코드 주석 및 경고 요약에서 해제 단추를 사용할 수 있습니다. 해제를 클릭하면 경고를 종료하는 이유를 선택하라는 메시지가 표시됩니다. 해제 이유를 선택하기 위한 드롭다운이 강조 표시된 코드 검사 경고의 스크린샷 쿼리가 향후 분석에 계속 포함될지 여부에 영향을 줄 수 있으므로 드롭다운 메뉴에서 적절한 이유를 선택하는 것이 중요합니다. 필요에 따라 해제에 대해 주석을 달고 경고 해제의 컨텍스트를 기록할 수 있습니다. 해제 주석은 경고 타임라인에 추가되며 감사 및 보고 중에 근거로 사용할 수 있습니다. REST API를 검색하는 코드를 사용하여 주석을 검색하거나 설정할 수 있습니다. 주석은 alerts/{alert_number} 엔드포인트에 대한 dismissed_comment에 포함되어 있습니다. 자세한 내용은 “코드 검사”를 참조하세요.

예를 들어 코드에서 지원되지 않는 삭제 라이브러리를 사용하기 때문에 CodeQL 경고를 가양성 결과로 해제하는 경우 CodeQL 리포지토리에 기여하고 분석을 개선하는 것이 좋습니다. CodeQL에 대한 자세한 내용은 “CodeQL에 기여”를 참조하세요.

경고를 해제하는 방법에 대한 자세한 내용은 " 리포지토리에 대한 code scanning 경고 관리"를 참조하세요.