Skip to main content

Enterprise Server 3.21 은(는) 현재 릴리스 후보로 제공됩니다.

컴파일된 언어에 대한 CodeQL 코드 검사 정보

컴파일된 언어, 사용 가능한 빌드 옵션을 분석하는 방법을 CodeQL 이해하고 필요한 경우 데이터베이스 생성 프로세스를 사용자 지정하는 방법을 알아봅니다.

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

쓰기 권한이 있는 사용자 if advanced setup is already enabled

Code scanning은 다음 리포지토리 유형에서 사용할 수 있습니다.

  • GitHub.com에 대한 퍼블릭 리포지토리
  • GitHub Team, GitHub Enterprise Cloud 또는 GitHub Enterprise Server에 대한 조직 소유의 리포지토리로, GitHub Code Security 가 활성화되어 있습니다.

CodeQL 분석 워크플로 및 컴파일된 언어에 대한 정보

          Code scanning 는 하나 이상의 CodeQL 데이터베이스에 대해 쿼리를 실행하여 작동합니다. 각 데이터베이스에는 사용자의 리포지토리에 있는 단일 언어로 된 코드 표현이 포함되어 있습니다. 컴파일된 언어 C/C++, C#, Go, Java, Kotlin, Rust,  및 Swift의 경우 이 데이터베이스를 채우는 프로세스에는 종종 코드 빌드 및 데이터 추출이 포함됩니다.

          code scanning을(를) 활성화하면, 기본 설정 및 고급 설정 모두 사용 가능한 가장 간단한 방법을 통해 분석을 위한 CodeQL 데이터베이스를 생성합니다. 데이터베이스 C/C++, C#,  Java Rust는 CodeQL 빌드(`none` 빌드 모드)를 요구하지 않고 코드베이스에서 직접 생성됩니다. 다른 컴파일된 언어의 경우, CodeQL는 `autobuild` 빌드 모드를 사용하여 코드베이스를 빌드합니다. 아니면 `manual` 빌드 모드를 사용하여 빌드 명령을 명시적으로 지정하여 이러한 사용자 지정 명령으로 빌드된 파일만을 분석할 수도 있습니다.

종속성 캐싱을 CodeQL 사용하여 레지스트리에서 종속성을 다운로드하는 대신 캐시로 GitHub Actions 저장할 수 있습니다. 이 문서의 후반부에서 종속성 캐싱에 대해 CodeQL 자세히 설명합니다.

CodeQL 빌드 모드

이 CodeQL 작업은 컴파일된 언어에 대해 세 가지 빌드 모드를 지원합니다.

  • none CodeQL- 데이터베이스는 코드베이스를 빌드하지 않고 코드베이스에서 직접 생성됩니다(해석된 모든 언어에 대해 지원되며 추가로 지원C/C++, C#, Java Rust됨).
  • autobuild - CodeQL 는 가장 가능성이 큰 빌드 방법을 검색하고 이를 사용하여 코드베이스를 빌드하고 분석할 데이터베이스를 만듭니다(지원 C/C++, C#, Go, Java, Kotlin 및 Swift됨).
  • manual - 워크플로의 코드베이스에 사용할 빌드 단계를 정의합니다(지원 C/C++, C#, Go, Java, Kotlin 및 Swift됨).

언어별 autobuild 동작, 실행기 요구 사항 및 수동 빌드에 대한 지침은 컴파일된 언어에 대한 CodeQL 빌드 옵션 및 단계을 참조하세요.

CodeQL에 대한 종속성 캐싱 정보

종속성 캐싱을 CodeQL 사용하여 레지스트리에서 종속성을 다운로드하는 대신 캐시로 GitHub Actions 저장할 수 있습니다. 이를 통해 타사 레지스트리가 제대로 작동하지 않을 시 경고가 손실될 위험을 줄이고, 종속성이 많거나 느린 레지스트리를 사용하는 프로젝트는 성능이 향상될 수 있습니다. 캐싱 종속성이 워크플로 속도를 높이는 방법에 대한 자세한 내용은 종속성 캐싱 참조을 참조하세요.

종속성 캐싱은 모든 빌드 모드에서 작동하며 Java, Go, C#에 의해 지원됩니다.

참고

종속성 캐싱을 사용하면 리포지토리에 대한 캐시 할당량이 적용되는 특정 캐시를 저장 CodeQL합니다. 종속성 캐싱 참조을(를) 참조하세요.