Skip to main content

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

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

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

읽기 권한이 있는 사용자

구성 code scanning 에 따라 결과가 끌어오기 요청에 대한 확인 결과 및 주석으로 표시될 수 있습니다. 자세한 내용은 코드 검사 경고 정보을(를) 참조하세요.

검사 결과 code scanning 보기

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

          **모든 분기 경고 보기**를 클릭하여 분석된 분기에 대한 전체 경고 세트를 볼 수 있습니다. 이렇게 하면 형식, 심각도, 태그 등을 기준으로 분기의 모든 경고를 필터링할 수 있는 전체 경고 보기가 열립니다. [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/assessing-code-scanning-alerts-for-your-repository#filtering-and-searching-for-code-scanning-alerts)에서 자세한 내용을 확인하세요.

끌어오기 요청의 Code scanning 결과를 확인하는 스크린샷. 진한 주황색 윤곽선으로 "모든 분기 경고 보기" 링크가 강조 표시됩니다.

검사 실패에 대한 심각도 수준 관리

검사 결과에서 code scanning의 심각도가 error, critical, 또는 high인 문제가 발견되면, 검사는 실패하며 오류가 검사 결과에 보고됩니다. code scanning에서 발견된 모든 결과의 심각도가 낮으면, 경고가 주의나 메모로 처리되며 검사가 성공적으로 완료됩니다.

끌어오기 요청의 병합 상자 스크린샷. "코드 스캔 결과 / CodeQL" 점검에 "1개의 높은 보안 심각도를 포함한 1개의 새로운 경고..."가 있습니다.

끌어오기 요청 확인 실패를 유발하는 심각도 및 보안 심각도 수준을 지정하여 리포지토리 설정의 기본 동작을 재정의할 수 있습니다. 자세한 내용은 코드 검색을 위한 워크플로 구성 옵션을(를) 참조하세요.

          code scanning 구성 문제 진단

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

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

다른 끌어오기 요청 검사와 마찬가지로, 검사 실패에 대한 전체 세부 정보는 검사 탭에서 볼 수 있습니다. 코드 검색을 위한 워크플로 구성 옵션 또는 코드 검사 분석 오류 문제 해결에서 구성 및 문제 해결에 대한 자세한 내용을 확인하세요.

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

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

끌어오기 요청의 "대화" 탭에 있는 경고 주석 스크린샷. 진한 주황색으로 "더 많은 세부 정보 표시" 링크가 간략하게 설명되어 있습니다.

파일 code scanning 끌어오기 요청에 도입된 변경 내용의 차이 내에 있는 모든 **** 경고를 볼 수도 있습니다.

끌어오기 요청에 새 코드 검색 구성을 추가하는 경우 끌어오기 요청 분기의 모든 경고를 볼 수 있도록 리포지토리 탭으로 안내하는 Security and quality 끌어오기 요청에 대한 주석이 표시됩니다. 리포지토리에 대한 코드 검사 경고 평가에서 리포지토리에 대한 경고 보기의 자세한 정보를 확인하세요.

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

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

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

경고에 대한 자세한 보기에서 code scanning 도구 중 일부는, 분석과 같이, 문제 설명과 코드를 수정하는 방법에 대한 안내가 포함된 CodeQL 링크를 제공합니다.

code scanning 경고 설명을 표시하는 스크린샷. 진한 주황색 윤곽선으로 "더 보기"라는 레이블이 지정된 링크가 강조 표시됩니다.

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

끌어오기 요청에 표시되는 모든 code scanning 경고에 대해 주석을 달 수 있습니다. 끌어오기 요청 검토의 일부로 경고가 끌어오기 요청의 대화 탭에 주석으로 표시되며, 변경된 파일 탭에도 표시됩니다.

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

팀의 워크플로에서 벗어나지 않고 GitHub 수정 작업을 추적하려면 경고를 문제에 연결할 수 있습니다. 코드 검사 경고를 GitHub 문제에 연결을(를) 참조하세요.

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

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

          코파일럿 자동 수정 끌어오기 요청에서 경고에 대한 제안 작업

          GitHub Copilot Autofix는 끌어오기 요청에서 code scanning 경고(code scanning 경고 포함)을 수정하는 데 도움이 되는 특정 추천을 제공하는 확장입니다. 코드베이스, 끌어오기 요청, 및 code scanning 분석의 데이터를 사용하여 LLM(대규모 언어 모델)에 의해 잠재적 수정이 자동으로 생성됩니다.

참고

GitHub Copilot를 사용하기 위해 GitHub Copilot Autofix을 구독할 필요는 없습니다. 코파일럿 자동 수정는 GitHub.com의 모든 퍼블릭 리포지토리와 GitHub Code Security 라이선스가 있는 조직 및 엔터프라이즈가 소유한 내부 또는 프라이빗 리포지토리에서 사용할 수 있습니다.

끌어오기 요청의 code scanning 경고의 검사 실패 스크린샷. 진한 주황색으로 "자동 수정" 제안의 일부가 간략하게 설명되어 있습니다.

          코파일럿 자동 수정 제안 생성 및 풀 리퀘스트에 게시하기

리포지토리에 대해 사용하도록 설정하면 코파일럿 자동 수정 경고가 정상적으로 끌어오기 요청에 표시되고 발견된 경고 code scanning 의 정보가 처리를 위해 LLM으로 자동으로 전송됩니다. LLM 분석 완료 시, 관련 경고에 대한 주석으로 모든 결과가 게시됩니다. 자세한 내용은 코드 검사에 Copilot Autofix의 책임 있는 사용을(를) 참조하세요.

참고

* 코파일럿 자동 수정 는 쿼리의 CodeQL 하위 집합을 지원합니다. 가용성 코파일럿 자동 수정에 대한 자세한 내용은 CodeQL 분석에 대한 쿼리에서 연결된 쿼리 테이블을 참조하세요.

  • 분석 완료 시, 끌어오기 요청에 모든 관련 결과가 한 번에 게시됩니다. 끌어오기 요청 코파일럿 자동 수정 에서 하나 이상의 경고에 제안이 있는 경우 LLM이 코드에 대한 잠재적 수정 사항 식별을 완료한 것으로 가정해야 합니다.
  • 지원 코파일럿 자동 수정되지 않는 쿼리에서 생성된 경고에는 쿼리가 지원되지 않는다는 메모가 표시됩니다. 지원되는 쿼리에 대한 제안을 생성하지 못하면 경고에 다른 커밋을 푸시하거나 고객 지원에 문의하라는 메모가 표시됩니다.
          코파일럿 자동 수정 경고 code scanning 는 모든 상황에서 모든 경고에 대한 수정을 생성할 수 없습니다. 이 기능은 최상의 노력으로 작동하며 100% 성공하도록 보장되지 않습니다. 자동으로 생성된 수정 사항의 제한 사항에 대한 자세한 내용은 [제안의 제한 사항](/code-security/code-scanning/managing-code-scanning-alerts/about-autofix-for-codeql-code-scanning#limitations-of-suggestions)을 참조하세요.

일반적으로 끌어오기 요청에 변경 내용을 제안할 때 주석에는 끌어오기 요청에서 변경된 단일 파일에 대한 변경 내용이 포함됩니다. 다음 스크린샷은 코파일럿 자동 수정 경고가 표시되는 파일에 대한 변경을 제안하는 index.js 주석을 보여줍니다. escape-html의 새 종속성이 잠재적인 수정 사항에 필요하므로, 이 파일을 원본 끌어오기 요청에서 변경하지 않더라도 주석은package.json 파일에 이 종속성을 추가하는 것도 제안합니다.

현재 파일 편집을 위한 코파일럿 자동 수정 제안 스크린샷. 진한 주황색으로 "package.json"의 제안된 변경 내용이 간략하게 설명되어 있습니다.

제안을 평가하고 적용 코파일럿 자동 수정

          코파일럿 자동 수정 제안마다 코드베이스에서 code scanning 경고에 대한 잠재적 솔루션을 보여 줍니다. 제안된 변경 사항을 평가하여 해당 변경 사항이 코드베이스에 적합한 솔루션인지 확인하고 의도한 동작을 유지하는지 반드시 확인해야 합니다. 제안의 코파일럿 자동 수정 제한 사항에 대한 자세한 내용은 ["](/code-security/code-scanning/managing-code-scanning-alerts/responsible-use-autofix-code-scanning#limitations-of-suggestions)책임 있는 사용 [](/code-security/code-scanning/managing-code-scanning-alerts/responsible-use-autofix-code-scanning#mitigating-the-limitations-of-suggestions)코파일럿 자동 수정"에서 제안 제한 사항 및 code scanning를 참조하세요.

1. 편집을 클릭하여 편집 옵션을 표시하고 원하는 방법을 선택하세요.


          GitHub CLI으로 편집**에서 끌어오기 요청을 로컬로 체크아웃하고 제안된 수정을 적용하는 지침을 따르십시오.
  • FILENAME 편집을 선택하여 GitHub에서 제안된 수정 사항이 적용된 파일을 직접 편집합니다.
  1. 필요에 따라 로컬 리포지토리 또는 분기에 수정 사항을 적용하려는 경우 제안에서 드롭다운 메뉴를 선택합니다.
    • 제안된 수정 사항을 로컬 리포지토리 또는 분기에 적용하기 위한 지침을 표시하기 위해 자동 수정 패치 보기를 선택하세요.
    • 제안의 특정 줄을 복사하려면 수정된 줄 LINE_NUMBER 복사를 선택하세요.
  2. 제안된 수정 사항을 필요에 맞게 테스트 및 수정하세요.
  3. 변경 내용 테스트 완료 후, 변경 내용을 커밋하고 분기에 푸시합니다.
  4. 변경 내용을 분기로 푸시하면 끌어오기 요청의 일반 테스트 전체가 트리거됩니다. 단위 테스트가 여전히 통과하는지 확인하고, code scanning 경고가 수정되었는지도 확인합니다.

제안 무시 코파일럿 자동 수정

제안을 거부 코파일럿 자동 수정 하려는 경우 주석에서 제안 해제 를 클릭하여 제안된 수정 사항을 해제합니다.

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

경고를 종료하는 다른 방법은 경고를 해제하는 것입니다. 수정할 필요가 없다고 생각되면 경고를 해제할 수 있습니다. 예를 들어 테스트에만 사용되는 코드의 오류 또는 오류를 수정하는 데 드는 노력이 코드 개선의 잠재적 이점보다 큰 경우입니다. 리포지토리에 대한 쓰기 권한이 있는 경우 코드 주석 및 경고 요약에서 경고 해제 단추를 사용할 수 있습니다. 경고 해제 클릭 시, 프롬프트가 표시되어 경고 종료 이유를 선택해야 합니다.

코드 검사의 검사 실패 스크린샷. 진한 주황색으로 "경고 해제" 단추가 강조 표시됩니다. "경고 해제" 드롭다운이 표시됩니다.

쿼리가 향후 분석에 계속 포함될지 여부에 영향을 줄 수 있으므로 드롭다운 메뉴에서 적절한 이유를 선택하는 것이 중요합니다. 선택적으로 해제에 대한 주석을 달아 경고 해제의 컨텍스트를 기록할 수 있습니다. 해제 주석은 경고 타임라인에 추가되며 감사 및 보고 중에 근거로 사용할 수 있습니다. REST API를 검색하는 코드를 사용하여 주석을 검색하거나 설정할 수 있습니다. 주석은 dismissed_comment 엔드포인트에 대한 alerts/{alert_number}에 포함되어 있습니다. 자세한 내용은 코드 검색에 대한 REST API 엔드포인트을(를) 참조하세요.

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

          [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts#dismissing--alerts)에서 경고 해제에 대한 자세한 내용을 확인하세요.