Skip to main content

CodeQL CLI 설정하기

CodeQL CLI을(를) 시작하려면 데이터베이스를 만들고 분석하는 데 필요한 도구 및 라이브러리에 액세스할 수 있도록 CLI를 다운로드 및 설정해야 합니다.

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

GitHub CodeQL은(는) 설치 시 사용자별로 라이선스가 부여됩니다. 라이선스 제한에 따라 특정 작업에만 CodeQL을(를) 사용할 수 있습니다. 자세한 내용은 "CodeQL CLI 알아보기"을(를) 참조하세요.

GitHub Advanced Security 라이선스가 있는 경우 CodeQL을(를) 사용하여 분석 자동화, 연속 통합 및 지속적인 업데이트를 할 수 있습니다. 자세한 내용은 "GitHub Advanced Security 정보"을(를) 참조하세요.

CodeQL CLI 설정하기

참고: 이 문서에서는 CodeQL CLI 2.16.5 번들에서 사용할 수 있는 기능을 GitHub Enterprise Server 3.13의 초기 릴리스에 포함되어 있습니다.

사이트 관리자가 CodeQL CLI 버전을 최신 릴리스로 업데이트한 경우 최신 기능에 대한 자세한 내용은 이 문서의 GitHub Enterprise Cloud 버전을 참조하세요.

CodeQL 명령을 실행하려면 데이터베이스를 만들고 분석하는 데 필요한 도구, 쿼리 및 라이브러리에 액세스할 수 있도록 CLI를 설정해야 합니다.

CodeQL CLI은(는) 다양한 사용 사례 및 디렉터리 구조를 지원하도록 설정할 수 있습니다. 빠르게 시작하려면 아래 단계에 설명된 대로 비교적 간단한 설정을 채택하는 것이 좋습니다.

보안 연구에 CodeQL CLI을(를) 사용하거나 쿼리를 테스트 또는 기여하려는 경우, CodeQL CLI의 고급 설정이 필요할 수 있습니다. 자세한 내용은 "CodeQL CLI 고급 설정"을(를) 참조하세요.

CI 시스템에서 CodeQL CLI을(를) 설정하는 경우, CodeQL CLI 번들의 전체 콘텐츠를 CodeQL code scanning 분석을 실행하려는 모든 CI 서버에서 사용할 수 있도록 해야 합니다. 예를 들어 중앙 내부 위치에서 번들을 복사하고 추출하도록 각 서버를 구성할 수 있습니다. 또는 REST API를 사용하여 GitHub에서 직접 번들을 가져와 쿼리에 대한 최신 개선 사항을 활용할 수 있습니다. 자세한 내용은 REST API 설명서에서 "릴리스 및 릴리스 자산에 대한 REST API 엔드포인트"을(를) 참조하세요.

Apple Silicon으로 macOS를 사용하는 경우(예: Apple M1), Xcode 명령줄 개발자 도구Rosetta 2가 설치되어 있는지 확인합니다.

참고: CodeQL CLI은(는) 현재 (muscl 기반) Alpine Linux와 같은 비 glibc Linux 배포판과 호환되지 않습니다.

1. CodeQL CLI tar 보관 파일 다운로드

CodeQL CLI 다운로드 패키지는 도구, 스크립트 및 다양한 CodeQL 관련 파일을 포함하는 tar 보관 파일입니다. GitHub Enterprise 라이선스가 없는 경우, 이 보관 파일을 다운로드하면 GitHub CodeQL 이용 약관에 동의하는 것으로 간주됩니다.

https://github.com/github/codeql-action/releases에서 CodeQL 번들을 다운로드해야 합니다. 번들에는 다음이 포함됩니다.

GitHub Enterprise Server 3.13의 경우, CodeQL CLI 버전 2.16.5을(를) 권장합니다.

항상 CodeQL 번들을 사용해야 합니다. 이 번들은 호환성을 보장하고 CodeQL CLI 쿼리를 별도로 다운로드하고 CodeQL 쿼리를 체크 아웃하는 것보다 훨씬 나은 성능을 제공합니다. 하나의 특정 플랫폼에서만 CLI를 실행하는 경우 적절한 codeql-bundle-PLATFORM.tar.gz 파일을 다운로드합니다. 또는 지원되는 모든 플랫폼에 해당하는 CLI가 포함된 codeql-bundle.tar.gz를 다운로드할 수 있습니다.

2. CodeQL CLI tar 보관 파일 추출

CodeQL CLI tar 보관 파일을 선택한 디렉터리에 추출합니다.

3. codeql 시작

추출한 후에는 codeql 실행 파일을 몇 가지 방법으로 실행하여 CodeQL 프로세스를 실행할 수 있습니다.

  • <extraction-root>/codeql/codeql을(를) 실행합니다. 여기서 <extraction-root>는 CodeQL CLI 패키지를 추출한 폴더입니다.
  • codeql처럼 실행 파일을 실행할 수 있도록 PATH<extraction-root>/codeql를 추가합니다.

이제 CodeQL 명령을 실행할 수 있습니다. CodeQL CLI 명령의 전체 목록은 "CodeQL CLI 명령 설명서"을(를) 참조하세요.

참고: PATHcodeql을(를) 추가한 경우, Visual Studio Code용 CodeQL에서 액세스해 쿼리를 컴파일하고 실행할 수 있습니다. CodeQL CLI에 액세스하도록 VS Code을(를) 구성하는 방법에 대한 자세한 내용은 "CodeQL CLI에 대한 액세스 구성" 섹션을 참조하세요.

CodeQL CLI 구성 테스트하기

CodeQL CLI 번들을 추출한 후 다음 명령을 실행하여 CLI가 데이터베이스를 만들고 분석하도록 올바르게 구성되어 있는지 확인할 수 있습니다.

  • /<extraction-root>/codeqlPATH에 있는 경우 codeql resolve qlpacks입니다.
  • 그렇지 않으면 /<extraction-root>/codeql/codeql resolve qlpacks입니다.

올바르게 구성되었다면 아래 추출된 것과 비슷한 내용이 출력됩니다.

codeql/cpp-all (/<extraction-root>/qlpacks/codeql/cpp-all/<version>)
codeql/cpp-examples (/<extraction-root>/qlpacks/codeql/cpp-examples/<version>)
codeql/cpp-queries (/<extraction-root>/qlpacks/codeql/cpp-queries/<version>)
codeql/csharp-all (/<extraction-root>/qlpacks/codeql/charp-all/<version>)
codeql/csharp-examples (/<extraction-root>/qlpacks/codeql/charp-examples/<version>)
codeql/csharp-queries (/<extraction-root>/qlpacks/codeql/charp-queries/<version>)
codeql/java-all (/<extraction-root>/qlpacks/codeql/java-all/<version>)
codeql/java-examples (/<extraction-root>/qlpacks/codeql/java-examples/<version>)
codeql/java-queries (/<extraction-root>/qlpacks/codeql/java-queries/<version>)
codeql/javascript-all (/<extraction-root>/qlpacks/codeql/javascript-all/<version>)
codeql/javascript-examples (/<extraction-root>/qlpacks/codeql/javascript-examples/<version>)
codeql/javascript-queries (/<extraction-root>/qlpacks/codeql/javascript-queries/<version>)
codeql/python-all (/<extraction-root>/qlpacks/codeql/python-all/<version>)
codeql/python-examples (/<extraction-root>/qlpacks/codeql/python-examples/<version>)
codeql/python-queries (/<extraction-root>/qlpacks/codeql/python-queries/<version>)
codeql/ruby-all (/<extraction-root>/qlpacks/codeql/ruby-all/<version>)
codeql/ruby-examples (/<extraction-root>/qlpacks/codeql/ruby-examples/<version>)
codeql/ruby-queries (/<extraction-root>/qlpacks/codeql/ruby-queries/<version>)
...

출력에 예상된 언어가 포함되어 있고 qlpack 파일의 디렉터리 위치가 올바른지 확인해야 합니다. 위치는 앞서 예시에서 <extraction root>(으)로 표시된 추출된 CodeQL CLI 번들 내에 있어야 합니다. CodeQL CLI에서 예상 언어에 대한 qlpack을 찾을 수 없는 경우 CodeQL 번들을 다운로드했는지 확인하고 CodeQL CLI의 독립 실행형 복사본이 아닌지 확인합니다.

데이터베이스를 만드는 데 사용할 수 있는 언어를 표시하기 위해 codeql resolve languages를 실행할 수도 있습니다. 그러면 CodeQL CLI 패키지에서 기본적으로 지원되는 언어가 나열됩니다.

필요에 따라, 실행하려는 미리 컴파일된 쿼리가 포함된 일부 CodeQL 팩을 다운로드할 수 있습니다. 자세한 내용은 "CodeQL 팩을 사용하여 분석 사용자 지정"을(를) 참조하세요.

다음 단계

CodeQL CLI에서 분석할 코드를 준비하는 방법을 알아보려면 "CodeQL 분석을 위한 코드 준비"을(를) 참조하세요.