Skip to main content

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค init

[๋ฐฐ๊ด€] ๋นˆ CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

CodeQL์€(๋Š”) ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitHub.com์˜ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, GitHub CodeQL ์‚ฌ์šฉ ์•ฝ๊ด€ ์ฐธ์กฐ
  • GitHub Code Security๊ฐ€ ํ™œ์„ฑํ™”๋œ GitHub Team ๋˜๋Š” GitHub Enterprise Cloud์˜ ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

์ด ๋ฌธ์„œ์˜ ๋‚ด์šฉ

์ฐธ๊ณ  ํ•ญ๋ชฉ

์ด ์ฝ˜ํ…์ธ ๋Š” CodeQL CLI์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์š”์†Œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/github/codeql-cli-binaries/releases์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ ์ด ๋ช…๋ น์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ --help ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

Shell
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๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.