참고
이 문서에서는 CodeQL CLI 2.20.3 번들에서 사용할 수 있는 기능을 GitHub Enterprise Server 3.16의 초기 릴리스에 포함되어 있습니다.
사이트 관리자가 CodeQL CLI 버전을 최신 릴리스로 업데이트한 경우 최신 기능에 대한 자세한 내용은 이 문서의 GitHub Enterprise Cloud 버전을 참조하세요.
CodeQL 팩 정보
CodeQL 팩은 CodeQL 쿼리 및 라이브러리를 만들고 공유하며, 의존하고 실행하는 데 사용됩니다. 다른 사용자가 CodeQL 만든 팩을 다운로드하고 코드베이스에서 실행하여 분석을 사용자 지정할 수 있습니다.
각 CodeQL 팩의 루트 디렉터리에는 다음을 지정하는 qlpack.yml 파일이 있어야 합니다:
- 쿼리를 컴파일하는 방법
- 다른 CodeQL 팩 및 라이브러리에 대한 종속성
- 쿼리 도구 모음 정의
속성에 대한 qlpack.yml 자세한 내용은 CodeQL 팩을 사용하여 분석 사용자 지정을 참조하세요.
또한 CodeQL 팩에는 다음이 포함될 수 있습니다.
- 사용자 지정 쿼리(
.ql파일) - 라이브러리 파일
- 쿼리 도구 모음
- 메타데이터
번들에는 CodeQL CLI 전문가, 보안 연구원 및 커뮤니티 기여자가 유지 관리하는 GitHub 쿼리가 포함됩니다. 다른 조직 CodeQL 에서 개발한 쿼리를 실행하려는 경우 쿼리 팩은 쿼리를 다운로드하고 실행하는 효율적이고 신뢰할 수 있는 방법을 제공하며, 모델 팩(공개 미리 보기)을 사용하여 분석을 확장 code scanning 하여 기본적으로 지원되지 않는 라이브러리 및 프레임워크를 인식할 수 있습니다.
팩 유형 CodeQL
쿼리 팩, 라이브러리 팩 및 모델 팩의 CodeQL 세 가지 유형의 팩이 있습니다.
-
쿼리 팩에는 데이터베이스에서 평가할 수 있는 미리 컴파일된 쿼리 집합이 CodeQL 포함되어 있습니다. 쿼리 팩은 실행되도록 설계되었습니다. 쿼리 팩이 게시되면 번들에 쿼리 원본 외에도 각 쿼리의 모든 전이적 종속성과 미리 컴파일된 표현이 포함됩니다. 이렇게 하면 팩에서 쿼리를 일관되고 효율적으로 실행할 수 있습니다.
-
라이브러리 팩은 쿼리 자체를 포함하지 않으며, 쿼리 팩이나 다른 라이브러리 팩에서 활용할 수 있도록 설계되었습니다. 라이브러리는 별도로 컴파일되지 않습니다.
-
모델 팩을 사용하여 분석을 확장 code scanning 하여 기본적으로 지원되지 않는 라이브러리 및 프레임워크를 인식할 수 있습니다. 모델 팩은 현재 공개 미리 보기 상태이며 변경될 수 있습니다. 공개 미리 보기 동안 모델 팩을 C/C++, C#, Java/Kotlin, Python, 및 Ruby 분석에 사용할 수 있습니다. 자신만의 모델 팩을 만드는 자세한 내용은 CodeQL 팩 만들기 및 작업에서 확인합니다.
쿼리 팩을 찾을 수 있는 위치
지원되는 모든 언어에 대한 표준 CodeQL 팩은 에 Container registry게시됩니다. CodeQL CLI 번들을 사용해 CodeQL CLI를 표준 방식으로 설치한 경우, 핵심 쿼리 팩은 이미 다운로드되어 바로 사용할 수 있습니다. 그들은 다음과 같습니다.
codeql/cpp-queriescodeql/csharp-queriescodeql/go-queriescodeql/java-queriescodeql/javascript-queriescodeql/python-queriescodeql/ruby-queriescodeql/swift-queries
게시된 쿼리 팩과 다른 CodeQL 릴리스 간의 호환성에 대한 자세한 내용은 CodeQL 쿼리 팩 참조을 참조하세요.
CodeQL CLI를 사용하여 사용자 고유의 CodeQL 팩을 만들고, 팩에 종속성을 추가하고, 종속성을 설치하거나 업데이트할 수도 있습니다.
CodeQL 팩 게시 및 공유하기
다음을 통해 광범위한 CodeQL 커뮤니티와 사용자 지정 쿼리를 공유할 수 있습니다.
- GitHub Packages에 게시: 다른 사용자가 팩을 찾아 사용할 수 있도록 공개합니다.
- 리포지토리에 CodeQL 기여: 공식 리포지토리에 끌어오기 요청을 열어 더 넓은 커뮤니티에 도움이 되는 쿼리를 제출합니다.
팩 게시 및 다운로드 CodeQL 에 대한 자세한 내용은 CodeQL 팩 게시 및 사용을 참조하세요.
CodeQL에 기여하는 방법에 대한 자세한 내용은 CodeQL에 기여하기를 참조하세요.