์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help
๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql database init --source-root=<dir> [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>
codeql database init --source-root=<dir> [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>
์ค๋ช
[๋ฐฐ๊ด] ๋น CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค.
์์ง ์์ QL ๋ฐ์ดํฐ ์ธํธ๊ฐ ์์ง๋ง, ์ถ์ถ๊ธฐ ๋จ๊ณ๋ฅผ ์คํํ ์ค๋น๊ฐ ๋ CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋ง๋ญ๋๋ค. ์ด ๋ช ๋ น์ด ์๋ฃ๋๋ฉด ํ๋ ์ด์์ codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ์ ๋ช ๋ น ๋ช ๋ น์ ์คํํ ๋ค์, codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ข ๋ฃ๋์ด ์ฟผ๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๋นํฉ๋๋ค .
์ด ์์ ์ ์ผ๋ถ๋ ์ ์ ํ ์ธ์ด ํฉ์ ์์น๋ฅผ ํ์ธํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฉํ๋ฐ์ดํฐ์ ์ ์ฅํ์ฌ ๊ฐ ์ถ์ถ ๋ช ๋ น์์ ๋ค์ ์คํํ์ง ์์๋ ๋๋๋ก ํ๋ ์์ ์ ๋๋ค. ์ถ์ถ ์์ ์ค๊ฐ์ ์ถ์ถ๊ธฐ๋ฅผ ์ ํํ๋ ๊ฒ์ ์ ํจํ์ง ์์ต๋๋ค.)
์ต์
๊ธฐ๋ณธ ์ต์
<database>
[ํ์] ๋ง๋ค CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ๋ก์ ๋๋ค. ์ด ๋๋ ํฐ๋ฆฌ๊ฐ ๋ง๋ค์ด์ง๊ณ ์์ง ์กด์ฌํ์ง ์์์ผ ํฉ๋๋ค(ํ์ง๋ง ํด๋น ๋ถ๋ชจ๋ ๋ฐ๋์ ์กด์ฌํด์ผ ํฉ๋๋ค).
--db-cluster
์ต์
์ด ์ง์ ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๊ฐ ์๋๋ผ ๋์ผํ ์๋ณธ ๋ฃจํธ์์ ๋น๋๋ ์ฌ๋ฌ ์ธ์ด์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ๋ฉ๋๋ค.
์ด ๋๋ ํฐ๋ฆฌ๊ฐ ๋น๋ ํ๋ก์ธ์ค์๊ฒ ๋ฐฉํด๋ฐ์ ์์น์ ์์ง ์์ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Maven ํ๋ก์ ํธ์ target
๋๋ ํฐ๋ฆฌ๋ ์ ํฉํ์ง ์์ต๋๋ค.
-s, --source-root=<dir>
[ํ์] ๋ฃจํธ ์์ค ์ฝ๋ ๋๋ ํฐ๋ฆฌ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ, ๊ฒ์ฌ ๋ฃจํธ๊ฐ ๋ฉ๋๋ค. ํ์ผ ๋ด์ ํ์ผ์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ์๋ณธ ํ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค ์ผ๋ถ ์ถ๋ ฅ ํ์์์๋ ํ์ผ์ด ์ด ๋๋ ํฐ๋ฆฌ์ ์๋ ๊ฒฝ๋ก๋ก ์ฐธ์กฐ๋ฉ๋๋ค.
--[no-]overwrite
[๊ณ ๊ธ] ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ญ์ ํ๊ณ ์คํจํ๋ ๋์ ์ด ๋ช ๋ น์ ๊ณ์ ์งํํฉ๋๋ค. ๋๋ ํฐ๋ฆฌ๊ฐ ์์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ๋ณด์ด์ง ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
--[no-]force-overwrite
[๊ณ ๊ธ] ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ฒ๋ผ ๋ณด์ด์ง ์๋๋ผ๋ ์ญ์ ํ๊ณ ์คํจํ์ง ์๋๋ก ์ด ๋ช ๋ น์ ๊ณ์ ์งํํฉ๋๋ค. ์ด ์ต์ ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ์ญ์ ํ ์ ์์ผ๋ฏ๋ก ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
--codescanning-config=<file>
[๊ณ ๊ธ] CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๊ณผ ์ดํ ๋จ๊ณ์์ ์คํํ ์ฟผ๋ฆฌ์ ๋ํ ์ต์ ์ ์ง์ ํ๋ ์ฝ๋ ๊ฒ์ ๊ตฌ์ฑ ํ์ผ์ ์ฝ์ต๋๋ค. ์ด ๊ตฌ์ฑ ํ์ผ์ ํ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฝ๋ ๊ฒ์์ ์ํ ๊ณ ๊ธ ์ค์ ์ฌ์ฉ์ ์ง์ ์ ์ฐธ์กฐํ์ธ์. ์ดํ ๋จ๊ณ์์ ์ด ํ์ผ์์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ค๋ฉด ์ง์ ๋ ๋ค๋ฅธ ์ฟผ๋ฆฌ ์์ด codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ์์ ํธ์ถํฉ๋๋ค.
--[no-]db-cluster
๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ๋์ ๋ค์ํ ์ธ์ด์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ "ํด๋ฌ์คํฐ"๋ฅผ ๋ง๋ญ๋๋ค. ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ช ๋ น์ค์ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ํ์ ๋๋ ํฐ๋ฆฌ์ ๋๋ค.
-l, --language=<lang>[,<lang>...]
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ธ์ด์ ๋๋ค.
codeql ํ์ธ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ๊ฒฝ๋ก์ ์๋ ํ๋ฌ๊ทธํ ์ธ์ด ์ถ์ถ๊ธฐ ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค.
--db-cluster
์ต์
์ ์ง์ ํ๋ฉด, ์ฌ๋ฌ ๋ฒ ํ์๋๊ฑฐ๋ ๊ฐ์ด ์ผํ๋ก ๊ตฌ๋ถ๋ ์ธ์ด ๋ชฉ๋ก์ผ ์ ์์ต๋๋ค.
์ด ์ต์
์ ์๋ตํ๊ณ ๋ถ์ ์ค์ธ ์๋ณธ ๋ฃจํธ๊ฐ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฒ์ฌ์ธ ๊ฒฝ์ฐ, CodeQL CLI๋ GitHub API๋ฅผ ํธ์ถํ์ฌ ๋ถ์ํ ์ธ์ด๋ฅผ ์๋์ผ๋ก ๊ฒฐ์ ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํ๊ฒฝ ๋ณ์ GITHUB_ํ ํฐ ๋๋ --github-auth-stdin
์ต์
์ ์ฌ์ฉํ์ฌ ํ์ค ์
๋ ฅ์ ํตํด GitHub PAT ํ ํฐ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
--build-mode=<mode>
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ๋น๋ ๋ชจ๋์ ๋๋ค.
๋ถ์ ์ค์ธ ์ธ์ด์ ๋ฐ๋ผ ๋น๋ ๋ชจ๋ ์ ํ:
none
: ์๋ณธ ๋ฃจํธ๋ฅผ ๋น๋ํ์ง ์๊ณ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
C#, Java, JavaScript/TypeScript, Python ๋ฐ Ruby์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
autobuild
: ์๋ณธ ๋ฃจํธ๋ฅผ ์๋์ผ๋ก ๋น๋ํ๋ ค ์๋ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค. C/C++, C#, Go, Java/Kotlin ๋ฐ Swift์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
manual
: ์๋์ผ๋ก ์ง์ ํ ๋น๋ ๋ช
๋ น์ ์ฌ์ฉํด ์๋ณธ ๋ฃจํธ๋ฅผ ๋น๋ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ญ๋๋ค. C/C++, C#, Go, Java/Kotlin ๋ฐ Swift์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
--command
์(๋ฅผ) ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ, '--build-mode manual'์ ์ถ๊ฐ๋ก ์ง์ ํ์ง ์์๋ ๋ฉ๋๋ค.
v2.16.4
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
--[no-]allow-missing-source-root
[๊ณ ๊ธ] ์ง์ ๋ ์๋ณธ ๋ฃจํธ๊ฐ ์๋๋ผ๋ ๊ณ์ ์งํํฉ๋๋ค.
--[no-]begin-tracing
[๊ณ ๊ธ] ๋ช ์์ ๋น๋ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ, ๊ธฐ์กด ๋น๋ ์ํฌํ๋ก์ ํตํฉํ ์ ์๋ "๊ฐ์ ๋น๋ ์ถ์ "์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ญ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ์๊ธฐ์ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ CodeQL ๋ถ์์ ์ํ ์ฝ๋ ์ค๋น์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ธฐ์ค ๊ณ์ฐ ์ต์
--[no-]calculate-baseline
[๊ณ ๊ธ] ๋ถ์ ์ค์ธ ์ฝ๋์ ๋ํ ๊ธฐ์ค ์ ๋ณด๋ฅผ ๊ณ์ฐํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ณธ ๋ฃจํธ๊ฐ ํ์ผ ์์คํ ์ ๋ฃจํธ๊ฐ ์๋ ํ, ์ฌ์ฉํ๋๋ก ์ค์ ๋ฉ๋๋ค. ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ์์คํ ์ ๋ฃจํธ์์๋ ๋์์ ์ฌ์ฉํ์ง ์๋๋ก ์ค์ ํ๊ฑฐ๋ ๊ฐ์ ๋ก ์ฌ์ฉํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
--[no-]sublanguage-file-coverage
[GitHub.com ๋ฐ GitHub Enterprise Server v3.12.0 ์ด์ ์ ์ฉ] ํ์ ์ธ์ด ํ์ผ ์ ์ฉ ๋ฒ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํฉ๋๋ค. C ๋ฐ C++, Java ๋ฐ Kotlin, JavaScript ๋ฐ TypeScript์ ๊ฐ์ CodeQL ์ถ์ถ๊ธฐ๋ฅผ ๊ณต์ ํ๋ ์ธ์ด์ ๋ํ ๋ณ๋์ ํ์ผ ์ ์ฉ ๋ฒ์ ์ ๋ณด๋ฅผ ๊ณ์ฐ, ํ์ ๋ฐ ๋ด๋ณด๋ ๋๋ค.
v2.15.2
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ถ๊ธฐ ์ ํ ์ต์
--search-path=<dir>[:<dir>...]
์ถ์ถ๊ธฐ ํฉ์ ์ฐพ์ ์ ์๋ ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก. ๋๋ ํฐ๋ฆฌ๋ ์ถ์ถ๊ธฐ ํฉ ์์ฒด ๋๋ ์ฆ์ ํ์ ๋๋ ํฐ๋ฆฌ๋ก ์ถ์ถ๊ธฐ๋ฅผ ํฌํจ ํ๋ ๋๋ ํฐ๋ฆฌ ์ ์์ต๋๋ค.
๊ฒฝ๋ก์ ์ฌ๋ ค ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ํด๋น ์์๋ ์ฐ์ ์์๋ฅผ ์ ์ํฉ๋๋ค. ๋์ ์ด๋ฆ์ด ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ ์ค ํ๋ ์ด์์์ ์ผ์นํ๋ ๊ฒฝ์ฐ ์ง์ ๋ ์ฒซ ๋ฒ์งธ ํธ๋ฆฌ๊ฐ ์ฐ์ ์ ์ผ๋ก ์ ์ฉ๋ฉ๋๋ค.
CodeQL ๋๊ตฌ ์ฒด์ธ ์์ฒด์ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต๋๋ ์ถ์ถ๊ธฐ๋ ํญ์ ์ฐพ์ ์ ์์ง๋ง ๋ณ๋๋ก ๋ถ์ฐ๋ ์ถ์ถ๊ธฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ด ์ต์
์ ์ ๊ณตํด์ผ ํฉ๋๋ค(์๋๋ฉด ์ฌ์ฉ์๋ณ ๊ตฌ์ฑ ํ์ผ์์ --search-path
์(๋ฅผ) ์ค์นํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค).
(์ฐธ๊ณ : Windows์์๋ ๊ฒฝ๋ก ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ;
์
๋๋ค.)
GitHub API๋ฅผ ํธ์ถํ์ฌ ์ธ์ด๋ฅผ ์๋์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๊ตฌ์ฑํ๋ ์ต์ ์ ๋๋ค
-a, --github-auth-stdin
ํ์ค ์ ๋ ฅ์ ํตํด GitHub ์ฑ ํ ํฐ ๋๋ ๊ฐ์ธ์ฉ ์ก์ธ์ค ํ ํฐ์ ์๋ฝํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด GITHUB_TOKEN ํ๊ฒฝ ๋ณ์๊ฐ ์ฌ์ ์๋ฉ๋๋ค.
-g, --github-url=<url>
์ฌ์ฉํ GitHub ์ธ์คํด์ค์ URL์ ๋๋ค. ์๋ต๋ ๊ฒฝ์ฐ CLI๋ ๊ฒ์ฌ ๊ฒฝ๋ก์์ ์ด์ ๋ํ ์๋ ๊ฐ์ง๋ฅผ ์๋ํ๋ฉฐ ๊ฐ์งํ ์ ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ https://github.com/์ ๋๋ค
ํจํค์ง ๊ด๋ฆฌ์ ๊ตฌ์ฑํ๋ ์ต์
--registries-auth-stdin
์ผํ๋ก ๊ตฌ๋ถ๋ <registry_url>=<token> ์ ๋ชฉ๋ก์ ์ ๋ฌํ์ฌ GitHub Enterprise Server ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์ ์ธ์ฆํฉ๋๋ค.
์๋ฅผ ๋ค์ด https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2
๋ฅผ ์ ๋ฌํ์ฌ
๋ ๊ฐ์ GitHub Enterprise Server ์ธ์คํด์ค์ ์ธ์ฆํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด CODEQL_REGISTRIES_AUTH ๋ฐ GITHUB_TOKEN ํ๊ฒฝ ๋ณ์๊ฐ ์ฌ์ ์๋ฉ๋๋ค. github.com ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ์๋ง ์ธ์ฆํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ ๊ฐ๋จํ --github-auth-stdin
์ต์
์ ์ฌ์ฉํ์ฌ ์ธ์ฆํ ์ ์์ต๋๋ค.
Windows ์ถ์ ์ ๊ตฌ์ฑํ๋ ์ต์
--trace-process-name=<process-name>
[Windows ์ ์ฉ] ์ถ์ ์ ์ด๊ธฐํํ ๋, ์ด๋ฆ์ด ์ด ์ธ์์ ์ผ์นํ๋ CodeQL CLI์ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์ถ์ ๊ธฐ๋ฅผ ์ฝ์
ํฉ๋๋ค. ๋ ์ด์์ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์ด ์ด๋ฆ์ด ์์ผ๋ฉด ํ๋ก์ธ์ค ํธ๋ฆฌ์์ ๊ฐ์ฅ ๋ฎ์ ํ๋ก์ธ์ค๊ฐ ์ ํ๋ฉ๋๋ค. ์ด ์ต์
์ --trace-process-level
์(๋ฅผ) ์ฌ์ ์ํ๋ฏ๋ก ๋ ๋ค ์ ๋ฌ๋๋ฉด ์ด ์ต์
๋ง ์ฌ์ฉ๋ฉ๋๋ค.
--trace-process-level=<process-level>
[Windows๋ง] ์ถ์ ์ ์ด๊ธฐํํ ๋, CodeQL CLI๋ฅผ ํธ์ถํ๋ ํ๋ก์ธ์ค์ ํด๋นํ๋ 0์ ์ฌ์ฉํ์ฌ ์ถ์ ๊ธฐ๋ฅผ ํ์ฌ ํ๋ก์ธ์ค ์์ ์ฝ์ ํฉ๋๋ค. ์ธ์๊ฐ ์ ๋ฌ๋์ง ์๋ ๊ฒฝ์ฐ, CLI์ ๊ธฐ๋ณธ ๋์์ GitHub Actions ๋ฐ Azure Pipelines์ ๋ํ ๋ช ๊ฐ์ง ํน๋ณํ ๊ฒฝ์ฐ์ ํจ๊ป ํธ์ถ ํ๋ก์ธ์ค์ ๋ถ๋ชจ์ ์ฝ์ ํ๋ ๊ฒ์ ๋๋ค.
๊ฐ์ ๋น๋ ์ถ์ ์ ๊ตฌ์ฑํ๋ ์ต์
--no-tracing
[๊ณ ๊ธ] ์ง์ ๋ ๋ช ๋ น์ ์ถ์ ํ์ง ์๊ณ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์์ฑํฉ๋๋ค.
--extra-tracing-config=<tracing-config.lua>
[๊ณ ๊ธ] ์ถ์ ๊ธฐ ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์ ๋๋ค. ๋น๋ ์ถ์ ๊ธฐ์ ๋์์ ์์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋น๋ ๋ช ๋ น์ ์ผ๋ถ๋ก ์คํ๋๋ ์ปดํ์ผ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๊ณ ๋ค๋ฅธ ๋๊ตฌ์ ์คํ์ ํธ๋ฆฌ๊ฑฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ถ์ถ๊ธฐ๋ ๋๋ถ๋ถ์ ์ํฉ์์ ์๋ํด์ผ ํ๋ ๊ธฐ๋ณธ ์ถ์ ๊ธฐ ๊ตฌ์ฑ ํ์ผ์ ์ ๊ณตํฉ๋๋ค.
์ถ์ถ๊ธฐ ๋์์ ์ ์ดํ๋ ์ต์ : ๊ฐ์ ์ถ์ ํ๊ฒฝ์๋ง ์ ์ฉ๋จ
-O, --extractor-option=<extractor-option-name=value>
CodeQL ์ถ์ถ๊ธฐ์ ๋ํ ์ต์
์ ์ค์ ํฉ๋๋ค. extractor-option-name
์(๋) extractor_name.group1.group2.option_name ๋๋ group1.group2.option_name์ ํ์์ด์ด์ผ ํฉ๋๋ค. extractor_option_name
์ด(๊ฐ) ์ถ์ถ๊ธฐ ์ด๋ฆ์ผ๋ก ์์ํ๋ ๊ฒฝ์ฐ, ํ์๋ ์ถ์ถ๊ธฐ๋ group1.group2.option_name ์ต์
์ ์ ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ต์
group1.group2.option_name์ ์ ์ธํ๋ ๋ชจ๋ ์ถ์ถ๊ธฐ์์ ์ต์
์ ์ค์ ํฉ๋๋ค. value
์(๋) ์ค์ ํฌํจํ์ง ์๋ ๋ชจ๋ ๋ฌธ์์ด์ผ ์ ์์ต๋๋ค.
์ด ๋ช
๋ น์ค ์ต์
์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ถ์ถ๊ธฐ ์ต์
์ ์ค์ ํ ์ ์์ต๋๋ค. ๋์ผํ ์ถ์ถ๊ธฐ ์ต์
์ ์ฌ๋ฌ ๊ฐ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ, ๋์์ ์ถ์ถ๊ธฐ ์ต์
์ด ์์ํ๋ ํ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ฌธ์์ด ์ต์
์ ์ ๊ณต๋ ๋ง์ง๋ง ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐฐ์ด ์ต์
์ ์ ๊ณต๋ ๋ชจ๋ ๊ฐ์ ์์๋๋ก ์ฌ์ฉํฉ๋๋ค. ์ด ๋ช
๋ น์ค ์ต์
์ ์ฌ์ฉํ์ฌ ์ง์ ๋ ์ถ์ถ๊ธฐ ์ต์
์ ์ถ์ถ๊ธฐ ์ต์
์ ํตํด --extractor-options-file
์ด(๊ฐ) ์ ๊ณต๋ ํ์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค init ๋๋ codeql database begin-tracing
์ ์ ๋ฌ๋๋ฉด ์ต์
์ด ๊ฐ์ ์ถ์ ํ๊ฒฝ์๋ง ์ ์ฉ๋ฉ๋๋ค. ์ํฌํ๋ก์์ codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ์ ๋ช
๋ น์ ํธ์ถํ๋ ๊ฒฝ์ฐ, ์ํ๋ ๊ฒฝ์ฐ์ ์ต์
๋ ์ ๋ฌํด์ผ ํฉ๋๋ค.
๊ฐ ์ถ์ถ๊ธฐ์์ ์ ์ธํ ์ต์ ์ ๋์ดํ๋ ๋ฐฉ๋ฒ์ ํฌํจํ์ฌ CodeQL ์ถ์ถ๊ธฐ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ https://codeql.github.com/docs/codeql-cli/extractor-options์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
--extractor-options-file=<extractor-options-bundle-file>
์ถ์ถ๊ธฐ ์ต์
๋ฒ๋ค ํ์ผ์ ์ง์ ํฉ๋๋ค. ์ถ์ถ๊ธฐ ์ต์
๋ฒ๋ค ํ์ผ์ ์ถ์ถ๊ธฐ ์ต์
์ ์ค์ ํ๋ JSON ํ์ผ(ํ์ฅ๋ช
.json
) ๋๋ YAML ํ์ผ(ํ์ฅ๋ช
.yaml
๋๋ .yml
)์
๋๋ค. ํ์ผ์๋ ์ต์์ ๋งต ํค 'extractor'๊ฐ ์์ด์ผ ํ๋ฉฐ, ๊ทธ ์๋์๋ ์ถ์ถ๊ธฐ ์ด๋ฆ์ด ๋ ๋ฒ์งธ ์์ค ๋งต ํค๋ก ์ง์ ๋์ด์ผ ํฉ๋๋ค. ์ง๋์ ์ถ๊ฐ ์์ค์ ์ค์ฒฉ๋ ์ถ์ถ๊ธฐ ๊ทธ๋ฃน์ ๋ํ๋ด๋ฉฐ ๋ฌธ์์ด ๋ฐ ๋ฐฐ์ด ์ต์
์ ๋ฌธ์์ด ๋ฐ ๋ฐฐ์ด ๊ฐ์ด ์๋ ์ง๋ ํญ๋ชฉ์
๋๋ค.
์ถ์ถ๊ธฐ ์ต์
๋ฒ๋ค ํ์ผ์ ์ง์ ๋ ์์๋๋ก ์ฝ์ต๋๋ค.
๋ค๋ฅธ ์ถ์ถ๊ธฐ ์ต์
๋ฒ๋ค ํ์ผ์์ ๋์ผํ ์ถ์ถ๊ธฐ ์ต์
์ ์ง์ ํ๋ ๊ฒฝ์ฐ, ๋์์ ์ถ์ถ๊ธฐ ์ต์
์ด ์์ํ๋ ํ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ฌธ์์ด ์ต์
์ ์ ๊ณต๋ ๋ง์ง๋ง ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐฐ์ด ์ต์
์ ์ ๊ณต๋ ๋ชจ๋ ๊ฐ์ ์์๋๋ก ์ฌ์ฉํฉ๋๋ค. ์ด ๋ช
๋ น์ค ์ต์
์ ์ฌ์ฉํ์ฌ ์ง์ ๋ ์ถ์ถ๊ธฐ ์ต์
์ ์ถ์ถ๊ธฐ ์ต์
์ ํตํด --extractor-option
์ด(๊ฐ) ์ ๊ณต๋๊ธฐ ์ ์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค init ๋๋ codeql database begin-tracing
์ ์ ๋ฌ๋๋ฉด ์ต์
์ด ๊ฐ์ ์ถ์ ํ๊ฒฝ์๋ง ์ ์ฉ๋ฉ๋๋ค. ์ํฌํ๋ก์์ codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ์ ๋ช
๋ น์ ํธ์ถํ๋ ๊ฒฝ์ฐ, ์ํ๋ ๊ฒฝ์ฐ์ ์ต์
๋ ์ ๋ฌํด์ผ ํฉ๋๋ค.
๊ฐ ์ถ์ถ๊ธฐ์์ ์ ์ธํ ์ต์ ์ ๋์ดํ๋ ๋ฐฉ๋ฒ์ ํฌํจํ์ฌ CodeQL ์ถ์ถ๊ธฐ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ https://codeql.github.com/docs/codeql-cli/extractor-options์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ผ๋ฐ ์ต์
-h, --help
์ด ๋์๋ง ํ ์คํธ๋ฅผ ํ์ํฉ๋๋ค.
-J=<opt>
[๊ณ ๊ธ] ๋ช ๋ น์ ์คํํ๋ JVM์ ์ต์ ์ ์ง์ ํฉ๋๋ค.
(๊ณต๋ฐฑ์ ํฌํจํ๋ ์ต์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์ง ์์ ์ ์์ผ๋ ์ฃผ์ํ์ธ์.)
-v, --verbose
์ถ๋ ฅ๋๋ ์งํ๋ฅ ๋ฉ์์ง ์๋ฅผ ์ ์ง์ ์ผ๋ก ๋๋ฆฝ๋๋ค.
-q, --quiet
์ถ๋ ฅ๋๋ ์งํ๋ฅ ๋ฉ์์ง ์๋ฅผ ์ ์ง์ ์ผ๋ก ์ค์ ๋๋ค.
--verbosity=<level>
[๊ณ ๊ธ] ์ธ๋ถ ์ ๋ณด ํ์ ์์ค์ ์ค๋ฅ, ๊ฒฝ๊ณ , ์งํ๋ฅ , ์งํ๋ฅ +, ์งํ๋ฅ ++, ์งํ๋ฅ +++ ์ค ํ๋๋ก ๋ช
์์ ์ผ๋ก ์ค์ ํฉ๋๋ค. -v
๋ฐ -q
๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
--logdir=<dir>
[๊ณ ๊ธ] ํ์์คํฌํ์ ์คํ ์ค์ธ ํ์ ๋ช ๋ น์ ์ด๋ฆ์ ํฌํจํ๋ ์์ฑ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ์๋ ํ๋ ์ด์์ ํ์ผ์ ์์ธํ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
(๋ชจ๋ ๊ถํ์ ๊ฐ์ง ์ด๋ฆ์ผ๋ก ๋ก๊ทธ ํ์ผ์ ์์ฑํ๋ ค๋ฉด --log-to-stderr
์(๋ฅผ) ์ง์ ํ๊ณ stderr๋ฅผ ์ํ๋ ๋๋ก ๋ฆฌ๋๋ ์
ํฉ๋๋ค.)
--common-caches=<dir>
[๊ณ ๊ธ] ๋ค์ด๋ก๋ํ QL ํฉ ๋ฐ ์ปดํ์ผ๋ ์ฟผ๋ฆฌ ๊ณํ๊ณผ ๊ฐ์ด ์ฌ๋ฌ CLI ์คํ ๊ฐ์ ์ ์ง๋๋ ๋์คํฌ์ ์บ์๋ ๋ฐ์ดํฐ์ ์์น๋ฅผ ์ ์ดํฉ๋๋ค. ๋ช
์์ ์ผ๋ก ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ ์ด ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ์ ์ด๋ฆ์ด ์ง์ ๋ .codeql
๋๋ ํฐ๋ฆฌ๋ก ์ค์ ๋๋ฉฐ, ์์ง ์๋ ๊ฒฝ์ฐ ๋ง๋ค์ด์ง๋๋ค.
v2.15.2
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.