Skip to main content

설정 사용자 지정

필요에 맞게 Visual Studio Code 익스텐션용 CodeQL에 대한 설정을 편집할 수 있습니다.

Visual Studio Code 익스텐션용 CodeQL의 설정 정보

다음을 포함하여 Visual Studio Code 익스텐션용 CodeQL에 대한 다양한 설정을 변경할 수 있습니다.

  • 익스텐션에서 사용하는 CodeQL CLI의 버전.
  • 익스텐션에서 이전 쿼리를 표시하는 방법.
  • 익스텐션에서 쿼리를 실행하는 방법.

CodeQL 확장 설정 편집

  1. "익스텐션" 보기를 열고 CodeQL 을(를) 마우스 오른쪽 단추로 클릭한 다음 익스텐션 설정을 클릭합니다.

    마우스 오른쪽 단추 클릭 메뉴가 표시되고 "익스텐션 설정"이 진한 주황색 윤곽선으로 표시된 "익스텐션" 보기의 스크린샷

  2. 설정 창에서 원하는 대로 설정을 편집합니다. 새 설정이 자동으로 저장됩니다.

    VS Code 내에 표시된 VS Code 익스텐션 설정용 CodeQL 창의 스크린샷.

Tip

또는 VS Code Command Palette를 열고 기본 설정: 사용자 설정 열기(JSON) 를 선택하여 JSON 형식으로 설정을 편집할 수 있습니다.

CodeQL CLI의 버전 선택

기본 동작을 재정의하고 특정 버전의 CodeQL CLI을(를) 사용하기 위해 익스텐션 설정에서 CodeQL CLI "실행 경로"를 지정하고 CodeQL CLI의 기존 복사본을 가리킬 수 있습니다. 즉, 명명된 codeql 파일(Linux 및 macOS) 또는 codeql.exe(Windows)입니다. 기본 동작에 대한 자세한 정보는 "CodeQL CLI에 대한 액세스 구성" 섹션을 참조하세요.

쿼리 기록 항목의 레이블 변경

쿼리 기록 "형식" 설정은 익스텐션이 쿼리 기록의 쿼리를 나열하는 방법을 제어합니다. 기본적으로 각 항목에는 다음 형식의 레이블이 있습니다.

QUERY-NAME on DATABASE-NAME - QUERY-STATUS NUMBER-OF-RESULTS [QUERY-RUNTIME]

기본 레이블을 재정의하려면 쿼리 기록 항목에 다른 형식을 지정하면 됩니다.

쿼리 기록 항목의 보존 기간 변경

기본적으로 "쿼리 기록" 보기의 항목은 30일 동안 유지됩니다. "쿼리 기록: Ttl" 설정을 변경하여 다른 TTL(Time to Live)을 설정할 수 있습니다. 항목을 무기한 보존하려면 값을 0으로 설정합니다.

로컬로 쿼리를 실행하기 위한 설정 구성

"쿼리 실행" 아래에는 여러 가지 설정이 있습니다. 예를 들어 쿼리가 너무 느리게 실행되고 시간이 자주 초과되는 경우 "쿼리 실행: 메모리" 설정을 변경하여 메모리를 늘릴 수 있습니다.

쿼리 성능을 검사하려면 타이밍 및 튜플 수를 포함하도록 "쿼리 실행: 디버그" 설정을 사용하도록 설정합니다. 그러면 "출력" 보기의 CodeQL "쿼리 서버" 탭의 로그에 표시됩니다. 튜플 수는 쿼리에서 계산한 조건자의 크기를 나타내기 때문에 유용합니다.

사용자 지정 위치에 쿼리 서버 로그를 저장하려면 "쿼리 실행: 사용자 지정 로그 디렉터리" 설정을 편집합니다. 사용자 지정 로그 디렉터리를 사용하는 경우 익스텐션은 각 작업 영역 세션 후에 자동으로 삭제하는 대신 로그를 영구적으로 저장합니다. 이 기능은 이러한 로그를 조사하여 쿼리 성능을 향상하려는 경우에 유용합니다.

변형 분석을 위한 설정 구성

"변형 분석" 아래에는 변형 분석을 위해 GitHub 리포지토리 목록을 정의하거나 편집하고 다른 컨트롤러 리포지토리로 변경하는 데 사용할 수 있는 여러 가지 설정이 있습니다. 컨트롤러 리포지토리의 용도 및 요구 사항에 대한 자세한 내용은 "다중 리포지토리 변형 분석을 사용하여 대규모 CodeQL 쿼리 실행" 섹션을 참조하세요.

databases.json이라는 Visual Studio Code 작업 영역에서 파일을 편집하여 "변형 분석 리포지토리" 보기에 표시된 항목을 편집할 수도 있습니다. 이 파일에는 보기에 표시된 모든 항목의 JSON 표현이 포함되어 있습니다. 편집기 창에서 databases.json 파일을 열려면 "변형 분석 리포지토리" 보기의 오른쪽 위에 있는 { } 아이콘을 클릭합니다. 그러면 보기에서 리포지토리, 조직 및 목록의 구조화된 표현을 확인할 수 있습니다. 예시:

{
  "version": 1,
  "databases": {
    "variantAnalysis": {
      "repositoryLists": [
        {
          "name": "My favorite JavaScript repos",
          "repositories": [
            "facebook/react",
            "babel/babel",
            "angular/angular"
          ]
        }
      ],
      "owners": [
        "microsoft"
      ],
      "repositories": [
        "apache/hadoop"
      ]
    }
  },
  "selected": {
    "kind": "variantAnalysisSystemDefinedList",
    "listName": "top_10"
  }
}

보기에 표시된 항목을 변경하거나 이 파일을 직접 편집하여 새 항목을 추가할 수 있습니다.

데이터베이스를 추가하기 위한 설정 구성

작업 영역에 데이터베이스 원본 폴더를 자동으로 추가하려면 "데이터베이스 추가: 작업 영역에 데이터베이스 원본 추가" 설정을 사용하도록 설정하면 됩니다.

이 설정은 기본적으로 사용하지 않도록 설정됩니다. 데이터베이스의 소스 코드를 정기적으로 찾아보는 경우(예: 코드의 추상 구문 트리를 보려면) 설정을 사용하도록 설정할 수 있습니다. 자세한 내용은 "소스 코드의 구조 탐색"을(를) 참조하세요.

Note

단일 폴더 작업 영역에 있는 경우 데이터베이스 원본 폴더를 추가하면 작업 영역이 다중 루트 작업 영역으로 다시 로드됩니다. 이로 인해 쿼리 기록 및 데이터베이스 목록이 다시 설정될 수 있습니다.

이 설정을 사용하도록 설정하기 전에 작업 영역을 다중 루트 작업 영역으로 저장하는 것이 좋습니다. 자세한 내용은 Visual Studio Code 설명서의 다중 루트 작업 영역을 참조하세요.

로컬에서 쿼리를 테스트하기 위한 설정 구성

쿼리 테스트에 사용되는 스레드 수를 늘리려면 "실행 중인 테스트: 스레드 수" 설정을 업데이트하면 됩니다.

테스트를 실행할 때 CodeQL CLI에 추가 인수를 전달하려면 "테스트 실행: 추가 테스트 인수" 설정을 업데이트하면 됩니다. 사용 가능한 인수에 대한 자세한 내용은 "테스트 실행" 섹션을 참조하세요.

원격 분석 및 데이터 수집에 대한 설정 구성

CodeQL 익스텐션에서 원격 분석 데이터를 수집할지 여부를 구성할 수 있습니다. 이 옵션은 기본적으로 사용하지 않도록 설정되어 있습니다. 자세한 내용은 "Visual Studio Code용 CodeQL의 원격 분석"을(를) 참조하세요.

확장에서 사용하는 GitHub URL 변경

기본적으로 Visual Studio Code용 CodeQL 확장은 GitHub.com에서 호스트되는 리포지토리를 분석하도록 구성됩니다. 데이터 보존 기능을 갖춘 GitHub Enterprise Cloud를 사용하는 경우 "GitHub Enterprise URI" 설정을 사용하여 사이트의 URL을 지정할 수 있습니다.

설정에서 GitHub URL 지정

  1. "익스텐션" 보기를 열고 CodeQL 을(를) 마우스 오른쪽 단추로 클릭한 다음 익스텐션 설정을 클릭합니다.

  2. "설정" 창에서 GitHub 인증 설정을 찾을 때까지 아래로 스크롤하고 데이터 보존 기능을 갖춘 GitHub Enterprise Cloud의 URL을 입력합니다. 새 설정이 자동으로 저장됩니다.

    URI 필드가 진한 주황색 윤곽선으로 표시된 "GitHub 인증"의 "확장" 설정의 스크린샷

또는 CodeQL에 대한 설정이 저장되는 JSON 파일에서 URL을 정의할 수 있습니다.

    "github-enterprise.uri": "SUBDOMAIN.ghe.com",

확장에서 설정한 GitHub URL을 사용하는 경우

GitHub Enterprise URI(github-enterprise.uri)가 정의되면 확장에서 이 URL을 사용합니다.

  • GitHub에서 데이터베이스 다운로드 요청
  • 변형 분석을 위한 리포지토리 목록 만들기

Note

데이터 보존 기능을 갖춘 GitHub Enterprise Cloud에서는 모든 리포지토리를 보려면 인증이 필요하므로 데이터를 다운로드하거나 분석하기 전에 인증해야 합니다. 또한 변형 분석을 위한 "상위 XX 리포지토리" 목록은 표시되지 않습니다. "다중 리포지토리 변형 분석을 사용하여 대규모 CodeQL 쿼리 실행"을(를) 참조하세요.

추가 참고 자료