코드 검사 및 CodeQL
분석에 사용할 도구 및 경고를 생성하는 방법에 따라 리포지토리에서 코드 검색을 설정하는 몇 가지 옵션이 있습니다. 세 가지 주요 방법은 다음과 같습니다.
- 기본 설정을 사용하여 리포지토리에서 코드 검색을 위한 CodeQL 분석을 신속하게 구성합니다. 기본 설정은 분석할 언어, 실행할 쿼리 모음, 스캔을 트리거하는 이벤트를 자동으로 선택합니다. 원할 경우 실행할 쿼리 도구 모음과 분석할 언어를 수동으로 선택할 수 있습니다. CodeQL을 사용하도록 설정하면 GitHub Actions에서 워크플로 실행을 진행하여 코드를 검사합니다. 자세한 내용은 "코드 검색을 위한 기본 설정 구성"을 참조하세요.
- 고급 설정을 사용하여 CodeQL 워크플로를 리포지토리에 추가합니다. 그러면 github/codeql-action을 사용하여 CodeQL CLI를 실행하는 사용자 지정 가능한 워크플로 파일이 생성됩니다. 자세한 내용은 "코드 검색을 위한 고급 설정 구성"을 참조하세요.
- 외부 CI 시스템에서 직접 CodeQL CLI를 실행하고 결과를 GitHub로 업로드합니다. 자세한 내용은 "기존 CI 시스템에서 코드 검색 사용"[2]을 참조하세요.
이전에는 기본 설정 및 구성을 시작하는 방법을 알아보았습니다. 이제 고급 설정을 사용하여 코드 검색을 설정하는 방법과 여러 리포지토리에 대한 코드 검사 워크플로의 대량 설치를 수행하는 방법을 알아봅니다.
GitHub Actions 및 CodeQL을 사용하는 코드 검사
고급 설정으로 코드 검색을 설정하려면 다음을 수행합니다.
- 리포지토리의 설정 탭으로 이동합니다.
- 왼쪽 패널에서 코드 보안 및 분석으로 이동하고, 설정 드롭다운을 클릭하고, 고급을 선택합니다. 코드 검색을 사용하도록 설정하기 전에 GitHub Advanced Security를 사용하도록 설정해야 할 수 있습니다.
- 생성된 워크플로 파일이 있는 새 페이지로 이동됩니다. 이 파일은 기본적으로
codeql.yml이름이 지정되며 코드 검색 실행을 시작하기 위해 리포지토리에 커밋해야 하는 구성 가능한 워크플로 파일입니다. - 코드 검사로 코드를 검사하는 방법을 사용자 지정하려면 워크플로를 편집합니다. 일반적으로 CodeQL 분석 워크플로를 변경하지 않고 커밋할 수 있습니다.
- 오른쪽 위 모서리에 있는 변경 내용 커밋... 단추를 사용하고 팝업 상자에 커밋 메시지를 입력합니다.
- 기본 분기에 직접 커밋할지 아니면 새 분기를 만들고 끌어오기 요청을 시작할지 선택합니다.
- 변경 내용 커밋을 클릭합니다.
기본 CodeQL 분석 워크플로에서는 코드 검사가 기본 분기 또는 보호된 분기로 변경 내용을 푸시하거나 기본 분기에 대한 끌어오기 요청을 실행할 때마다 코드를 분석하도록 구성됩니다. 따라서 이제 코드 검사가 시작됩니다.
코드 검사에 대한 on:pull_request 및 on:push 트리거가 유용한 용도는 각기 다릅니다.
코드 검사 일괄 설정
스크립트를 사용하여 여러 리포지토리에서 코드 검사를 한 번에 설정할 수 있습니다. 스크립트를 사용하여 여러 리포지토리에 GitHub Actions 워크플로를 추가하는 끌어오기 요청을 실행하려는 경우 PowerShell을 사용하는 예제에 관한 jhutchings1/Create-ActionsPRs[3] 리포지토리를 참조하거나, NodeJS를 사용하는 예제에 관한 nickliffen/ghas-enablement[4]를 참조하세요.