์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help
๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql test run [--threads=<num>] [--ram=<MB>] <options>... -- <test|dir>...
codeql test run [--threads=<num>] [--ram=<MB>] <options>... -- <test|dir>...
์ค๋ช
QL ์ฟผ๋ฆฌ์ ๋ํ ๋จ์ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค.
์ต์
๊ธฐ๋ณธ ์ต์
<test|dir>...
๊ฐ ์ธ์๋ ๋ค์ ์ค ํ๋์ ๋๋ค.
- ์คํํ ํ
์คํธ๋ฅผ ์ ์ํ๋
.ql
๋๋.qlref
ํ์ผ์ ๋๋ค. - ์คํํ ํ์ผ์ ์ฌ๊ท์ ์ผ๋ก ๊ฒ์ํ ๋๋ ํฐ๋ฆฌ์ ๋๋ค.
--failing-exitcode=<code>
[๊ณ ๊ธ] ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์์ฑํ ์ข ๋ฃ ์ฝ๋๋ฅผ ์ค์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก 1์ด์ง๋ง ์ถ๋ ฅ์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๋๊ตฌ๋ 0์ผ๋ก ์ค์ ํ๋ ๊ฒ์ด ์ ์ฉํ ์ ์์ต๋๋ค.
--format=<fmt>
์ถ๋ ฅ ํ์์ ์ ํํฉ๋๋ค. ๊ฐ๋ฅํ ์ ํ ์ฌํญ:
text
(๊ธฐ๋ณธ๊ฐ): ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ
์คํธ ๋ ๋๋ง์
๋๋ค.
json
: ํ
์คํธ ๊ฒฐ๊ณผ ๊ฐ์ฒด์ ์คํธ๋ฆฌ๋ฐ๋ JSON ๋ฐฐ์ด์
๋๋ค.
betterjson
: ์ด๋ฒคํธ ๊ฐ์ฒด์ ์คํธ๋ฆฌ๋ฐ๋ JSON ๋ฐฐ์ด์
๋๋ค.
jsonz
: 0์ผ๋ก ๋๋๋ JSON ํ
์คํธ ๊ฒฐ๊ณผ ๊ฐ์ฒด์ ์คํธ๋ฆผ์
๋๋ค.
betterjsonz
: 0์ผ๋ก ๋๋๋ JSON ์ด๋ฒคํธ ๊ฐ์ฒด์ ์คํธ๋ฆผ์
๋๋ค.
betterjson
๋ฐ betterjsonz
ํ์์ ๊ฒฝ์ฐ ๊ฐ ์ด๋ฒคํธ์๋ ์ด๋ฒคํธ์ ์ ํ์ ์ง์ ํ๋ type
์์ฑ์ด ์์ต๋๋ค. ๋์ค์ ์๋ก์ด ์ด๋ฒคํธ ์ ํ์ด ์ถ๊ฐ๋ ์ ์์ผ๋ฏ๋ก ์๋น์๋ ์ธ์ํ ์ ์๋ kind
์์ฑ์ด ์๋ ๋ชจ๋ ์ด๋ฒคํธ๋ฅผ ๋ฌด์ํด์ผ ํฉ๋๋ค.
--[no-]keep-databases
[๊ณ ๊ธ] ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ํ ์คํธ๊ฐ ํต๊ณผํ๋๋ผ๋ ํ ์คํธ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ธฐ ์ํด ์ถ์ถ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์งํฉ๋๋ค. (ํ ์คํธ๊ฐ _์คํจ_ํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํญ์ ๋จ์ ์์ต๋๋ค).
--[no-]fast-compilation
[์ฌ์ฉ๋์ง ์์] [๊ณ ๊ธ] ํ ์คํธ ์ฟผ๋ฆฌ๋ฅผ ์ปดํ์ผ๋งํ ๋ ํนํ ๋๋ฆฐ ์ต์ ํ ๋จ๊ณ๋ฅผ ์๋ตํฉ๋๋ค.
--[no-]learn
[๊ณ ๊ธ] ํ
์คํธ๊ฐ ์๊ธฐ์น ์์ ์ถ๋ ฅ์ ์์ฑํ๋ ๊ฒฝ์ฐ ์คํจํ๋ ๋์ ์ค์ ์ถ๋ ฅ๊ณผ ์ผ์นํ๋๋ก .expected
ํ์ผ์ ์
๋ฐ์ดํธํ์ฌ ํต๊ณผํ๋๋ก ํฉ๋๋ค. ์ด ๋ชจ๋์์๋ ์ฟผ๋ฆฌํ ํ
์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์ง ๋ชปํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ํ
์คํธ๊ฐ ์คํจํ ์ ์์ต๋๋ค.
--consistency-queries=<dir>
[๊ณ ๊ธ] ๊ฐ ํ
์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์คํ๋ ์ผ๊ด์ฑ ์ฟผ๋ฆฌ๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ์
๋๋ค. ํ
์คํธ ๋๋ ํฐ๋ฆฌ์ .expected
ํ์ผ์ด ์๋ CONSISTENCY
ํ์ ๋๋ ํฐ๋ฆฌ๊ฐ ํฌํจ๋์ง ์๋ ํ ํด๋น ์ฟผ๋ฆฌ๋ ์ด๋ค ์ถ๋ ฅ๋ ์์ฑํด์๋ ์ ๋ฉ๋๋ค(๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ ๊ฒฝ์ฐ ์ ์ธ). ์ฃผ๋ก ์ถ์ถ๊ธฐ๋ฅผ ํ
์คํธํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
--[no-]check-databases
[๊ณ ๊ธ] ๋ง๋ ๊ฐ ํ
์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด codeql dataset check๋ฅผ ์คํํ๊ณ ๋ถ์ผ์น๊ฐ ๊ฐ์ง๋๋ฉด ์คํจ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. ์ฃผ๋ก ์ถ์ถ๊ธฐ๋ฅผ ํ
์คํธํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ฒ์ฌ๊ฐ(์ผ์์ ์ผ๋ก!) ์คํจํ ๊ฒ์ผ๋ก ์์๋๋ ๊ฒฝ์ฐ ํ
์คํธ ๋๋ ํฐ๋ฆฌ์ DB-CHECK.expected
ํ์ผ์ ๋ฐฐ์นํ์ธ์.
--[no-]show-extractor-output
[๊ณ ๊ธ] ํ ์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ์ถ์ถ๊ธฐ ์คํฌ๋ฆฝํธ์ ์ถ๋ ฅ์ ํ์ํฉ๋๋ค. ํ ์คํธ ์ฌ๋ก๋ฅผ ๊ฐ๋ฐํ๊ฑฐ๋ ํธ์งํ๋ ๋์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ์ค๋ ๋์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ค๋ณต๋๊ฑฐ๋ ์๋ชป๋ ํ์์ ์ถ๋ ฅ์ด ๋ฐ์ํ ์ ์์ผ๋ ์ฃผ์ํ์ธ์!
-M, --ram=<MB>
ํ ์คํธ ์คํ๊ธฐ์์ ์ฌ์ฉํ ์ ์๋ ์ด RAM ์์ ์ค์ ํฉ๋๋ค.
--slice=<N/M>
[๊ณ ๊ธ] ํ ์คํธ ์ฌ๋ก๋ฅผ ๋๋ต ๊ฐ์ ํฌ๊ธฐ์ _M_๊ฐ์ ์กฐ๊ฐ์ผ๋ก ๋๋๊ณ ๊ทธ ์ค Nth๋ฒ์งธ ์กฐ๊ฐ๋ง ์ฒ๋ฆฌํฉ๋๋ค. ํ ์คํธ ํ๋ก์ธ์ค์ ์๋ ๋ณ๋ ฌํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
--[no-]strict-test-discovery
[๊ณ ๊ธ] ํ
์คํธ๋ก ํ๊ณ ํ๊ฒ ์๋ณํ ์ ์๋ ์ฟผ๋ฆฌ๋ง ์ฌ์ฉํฉ๋๋ค.
์ด ๋ชจ๋๋ ๋จ์ ํ
์คํธ๋ฅผ ์ ์ํ๋ .ql
ํ์ผ๊ณผ ์ ์ฉํ ์ฟผ๋ฆฌ์ธ .ql
ํ์ผ์ ๊ตฌ๋ถํ๋ ค๊ณ ํฉ๋๋ค. ์ด ์ต์
์ ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ์ ํ์ผ ์ ๋ ฌ ๋ฐฉ์์ ๋ํ ์ฌ์ ์ง์์ ์์กดํ์ง ์๊ณ ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ์ ๋ชจ๋ ๋จ์ ํ
์คํธ๋ฅผ ์๋ณํด์ผ ํ๋ IDE์ ๊ฐ์ ๋๊ตฌ์์ ์ฌ์ฉ๋ฉ๋๋ค.
qlpack.yml
์ด tests
๋๋ ํฐ๋ฆฌ๋ฅผ ์ ์ธํ๋ QL ํฉ ๋ด์์ ํด๋น ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ .ql
ํ์ผ์ ํ
์คํธ๋ก ๊ฐ์ฃผ๋๋ฉฐ ๊ทธ ์ธ๋ถ์ .ql
ํ์ผ์ ๋ฌด์๋ฉ๋๋ค. tests
๋๋ ํฐ๋ฆฌ๋ฅผ ์ ์ธํ์ง ์๋ QL ํฉ์์ .ql
ํ์ผ์ ํด๋น .expected
ํ์ผ์ด ์๋ ๊ฒฝ์ฐ์๋ง ํ
์คํธ๋ก ์๋ณ๋ฉ๋๋ค.
์ผ๊ด์ฑ์ ์ํด .qlref
ํ์ผ์ด ์ค์ ๋ก ํ
์คํธ๊ฐ ์๋ ํ์ผ์ผ ์ ์๋๋ผ๋ .qlref
ํ์ผ์ .ql
ํ์ผ๊ณผ ๋์ผํ ๊ท์น์ผ๋ก ์ ํ๋ฉ๋๋ค.
ํ ์คํธ์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ถ์ถ๊ธฐ๋ฅผ ์ฐพ๋ ์ต์
--search-path=<dir>[:<dir>...]
QL ํฉ์ ์ฐพ์ ์ ์๋ ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก์
๋๋ค. ๊ฐ ๋๋ ํฐ๋ฆฌ๋ QL ํฉ(๋๋ ๋ฃจํธ์ .codeqlmanifest.json
ํ์ผ์ด ํฌํจ๋ ํฉ ๋ฒ๋ค) ๋๋ ๊ทธ๋ฌํ ๋๋ ํฐ๋ฆฌ ํ๋ ์ด์์ ์ง๊ณ ๋ถ๋ชจ์ผ ์ ์์ต๋๋ค.
๊ฒฝ๋ก์ ๋ ์ด์์ ๋๋ ํฐ๋ฆฌ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ๋๋ ํฐ๋ฆฌ์ ์์๊ฐ ์ฐ์ ์์๋ฅผ ์ ์ํฉ๋๋ค. ํ์ธํด์ผ ํ๋ ํฉ ์ด๋ฆ์ด ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ ์ค ๋ ์ด์์์ ์ผ์นํ๋ ๊ฒฝ์ฐ ๋จผ์ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์ฐ์ ํฉ๋๋ค.
์คํ ์์ค CodeQL ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฒดํฌ ์์์์ ์ด๋ฅผ ๊ฐ๋ฆฌํค๋ฉด ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ ์ธ์ด ์ค ํ๋๋ฅผ ์ฟผ๋ฆฌํ ๋ ์๋ํด์ผ ํฉ๋๋ค.
์์ถ์ ํผ CodeQL ํด์ฒด์ธ์ ํ์ ๋ก CodeQL ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฒดํฌ ์์ํ ๊ฒฝ์ฐ ์ด ์ต์
์ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํ์ ๋๋ ํฐ๋ฆฌ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ฐพ์ ์ ์๋ QL ํฉ์ผ๋ก ํญ์ ๊ฒ์๋ฉ๋๋ค. (์ด ๊ธฐ๋ณธ๊ฐ์ด ์๋ํ์ง ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ณ ๊ตฌ์ฑ ํ์ผ์์ --search-path
๋ฅผ ํ ๋ฒ๋ง ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค).
(์ฐธ๊ณ : Windows์์๋ ๊ฒฝ๋ก ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ;
์
๋๋ค.)
--additional-packs=<dir>[:<dir>...]
์ด ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก์ด ์ง์ ๋ ๊ฒฝ์ฐ --search-path
์ ์๋ ๋๋ ํฐ๋ฆฌ๋ณด๋ค ๋จผ์ ํฉ์ด ๊ฒ์๋ฉ๋๋ค. ์ด ์ฌ์ด์ ์์๋ ์ค์ํ์ง ์์ต๋๋ค. ์ด ๋ชฉ๋ก์ ํตํด ์๋ก ๋ค๋ฅธ ๋ ์์น์์ ํฉ ์ด๋ฆ์ ์ฐพ์ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์๋ ํ์๋๋ ํฉ์ ์ ๋ฒ์ ์ ์ผ์์ ์ผ๋ก ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค. ๋ฐ๋ฉด์ ๊ตฌ์ฑ ํ์ผ์์ ์ด ์ต์ ์ ์ฌ์ ์ํ๋ ๊ฒ์ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ์ผ๋ถ ๋ด๋ถ ์์ ์์๋ ๊ตฌ์ฑ๋ ๊ฐ์ ์ฌ์ ์ํ์ฌ ์ฆ์ ์ด ์ต์ ์ ์ถ๊ฐํฉ๋๋ค.
(์ฐธ๊ณ : Windows์์๋ ๊ฒฝ๋ก ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ;
์
๋๋ค.)
--library-path=<dir>[:<dir>...]
[๊ณ ๊ธ] QL ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ ๊ฐ์ ธ์ค๊ธฐ ๊ฒ์ ๊ฒฝ๋ก์ ์ถ๊ฐ๋ ์ ํ์ ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก์ ๋๋ค. QL ํฉ์ผ๋ก ํจํค์ง๋์ง ์์ QL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
(์ฐธ๊ณ : Windows์์๋ ๊ฒฝ๋ก ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ;
์
๋๋ค.)
--dbscheme=<file>
[๊ณ ๊ธ] ์ปดํ์ผํด์ผ ํ๋ dbscheme ์ฟผ๋ฆฌ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ์ํฉ๋๋ค. ์์ ์ด ์ํํ๊ณ ์๋ ์์ ์ ๋ํด ๋งค์ฐ ํ์ ํ๋ ํธ์ถ์์ ์ํด์๋ง ์ง์ ๋์ด์ผ ํฉ๋๋ค.
--compilation-cache=<dir>
[๊ณ ๊ธ] ์ปดํ์ผ ์บ์๋ก ์ฌ์ฉํ ์ถ๊ฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค.
--no-default-compilation-cache
[๊ณ ๊ธ] ์ฟผ๋ฆฌ๋ฅผ ํฌํจํ๋ QL ํฉ ๋๋ CodeQL ํด์ฒด์ธ ๋๋ ํฐ๋ฆฌ์ ๊ฐ์ ํ์ค ์์น์์ ์ปดํ์ผ ์บ์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
CodeQL ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ๊ตฌ์ฑํ๋ ์ต์
--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
์ต์
์ ์ฌ์ฉํ์ฌ ์ธ์ฆํ ์ ์์ต๋๋ค.
--github-auth-stdin
ํ์ค ์ ๋ ฅ์ ํตํด github.com์ GitHub Apps ํ ํฐ ๋๋ ๊ฐ์ธ์ฉ ์ก์ธ์ค ํ ํฐ์ ์ ๋ฌํ์ฌ github.com ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์ ์ธ์ฆํฉ๋๋ค.
GitHub Enterprise Server ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ์ ์ธ์ฆํ๋ ค๋ฉด --registries-auth-stdin
์ ์ ๋ฌํ๊ฑฐ๋ CODEQL_REGISTRIES_AUTH ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด GITHUB_TOKEN ํ๊ฒฝ ๋ณ์๊ฐ ์ฌ์ ์๋ฉ๋๋ค.
์ฟผ๋ฆฌ ์ปดํ์ผ์ ์ ์ดํ๋ ์ต์
--no-release-compatibility
[๊ณ ๊ธ] ์ด์์ฑ์ ํฌ์ํ๊ณ ์ต์ ์ปดํ์ผ๋ฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
๋๋๋ก QL ํ๊ฐ๊ธฐ๋ ์๋ก์ด QL ์ธ์ด ๊ธฐ๋ฅ ๋ฐ ํ๊ฐ๊ธฐ ์ต์ ํ๋ฅผ QL ์ปดํ์ผ๋ฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ ์ ๋ช๋ช ๋ฆด๋ฆฌ์ค์์ ์ง์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ต์ CodeQL ๋ฆด๋ฆฌ์ค์์ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ ๋ ๊ฒฝํํ๋ ์ฑ๋ฅ์ด ์ฝ๋ ๊ฒ์ฌ ๋๋ CI ํตํฉ์ ์์ง ์ฌ์ฉ ์ค์ผ ์ ์๋ ์ฝ๊ฐ ์ด์ ๋ฆด๋ฆฌ์ค์ ์ผ์นํ ์ ์์ต๋๋ค.
์ฟผ๋ฆฌ๊ฐ ๋ค๋ฅธ(์ด์ ๋๋ ์ดํ) CodeQL ๋ฆด๋ฆฌ์ค์ ํธํ๋๋ ๊ฒ์ ์ ๊ฒฝ ์ฐ์ง ์๋ ๊ฒฝ์ฐ ์ด ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํ์ผ๋ฌ์ ์ต๊ทผ ๊ฐ์ ์ฌํญ์ ์กฐ๊ธฐ์ ์ฌ์ฉํ๋๋ก ์ค์ ํ๊ณ ์ฝ๊ฐ์ ์ถ๊ฐ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค.
์ฌ์ฉํ ์ ์๋ ์ต๊ทผ ๊ฐ์ ์ฌํญ์ด ์๋ ๋ฆด๋ฆฌ์ค์์ ์ด ์ต์ ์ ์๋์ผ๋ก ์๋ฌด ์์ ๋ ์ํํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ญ CodeQL ๊ตฌ์ฑ ํ์ผ์์ ํ ๋ฒ๋ง ์ค์ ํด๋ ์์ ํฉ๋๋ค.
v2.11.1
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ ์คํธ ์ฟผ๋ฆฌ ํ๊ฐ๋ฅผ ์ ์ดํ๋ ์ต์
--[no-]tuple-counting
[๊ณ ๊ธ] ์ฟผ๋ฆฌ ํ๊ฐ๊ธฐ ๋ก๊ทธ์ ๊ฐ ํ๊ฐ ๋จ๊ณ์ ๋ํ ํํ ์๋ฅผ ํ์ํฉ๋๋ค. --evaluator-log
์ต์
์ด ์ ๊ณต๋๋ฉด ๋ช
๋ น์ผ๋ก ์์ฑ๋ ํ
์คํธ ๊ธฐ๋ฐ ๋ฐ ๊ตฌ์กฐํ๋ JSON ๋ก๊ทธ ๋ชจ๋์ ํํ ์๊ฐ ํฌํจ๋ฉ๋๋ค. (๋ณต์กํ QL ์ฝ๋์ ์ฑ๋ฅ ์ต์ ํ์ ์ ์ฉํ ์ ์์ต๋๋ค.)
--timeout=<seconds>
[๊ณ ๊ธ] ์ฟผ๋ฆฌ ํ๊ฐ์ ๋ํ ์๊ฐ ์ ํ ๊ธธ์ด(์ด)๋ฅผ ์ค์ ํฉ๋๋ค.
์๊ฐ ์ ํ ๊ธฐ๋ฅ์ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ํ๊ฐํ๋ ๋ฐ "์์ํ" ๊ฑธ๋ฆฌ๋ ์ฌ๋ก๋ฅผ ์ก์๋ด๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ์ฟผ๋ฆฌ ํ๊ฐ์ ๊ฑธ๋ฆด ์ ์๋ ์ด ์๊ฐ์ ์ ํํ๋ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ์๋๋๋ค. ๋ณ๋๋ก ์๊ฐ์ด ์ง์ ๋ ๊ฐ ๊ณ์ฐ ๋ถ๋ถ์ด ์๊ฐ ์ ํ ๋ด์ ์๋ฃ๋๋ ํ ํ๊ฐ๋ฅผ ๊ณ์ํ ์ ์์ต๋๋ค. ํ์ฌ ์ด๋ ๊ฒ ๋ณ๋๋ก ์๊ฐ์ด ์ง์ ๋ ๋ถ๋ถ์ ์ต์ ํ๋ ์ฟผ๋ฆฌ์ "RA ๊ณ์ธต"์ด์ง๋ง ๋์ค์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
์๊ฐ ์ ํ์ด ์ง์ ๋์ง ์๊ฑฐ๋ 0์ผ๋ก ์ง์ ๋ ๊ฒฝ์ฐ ์๊ฐ ์ ํ์ด ์ค์ ๋์ง ์์ต๋๋ค(๊ธฐ๋ณธ ์๊ฐ ์ ํ์ด 5๋ถ์ธ codeql test run ์ ์ธ).
-j, --threads=<num>
ํด๋น ์ค๋ ๋ ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ํ๊ฐํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค. 0์ ์ ๋ฌํ์ฌ ์ปดํจํฐ์ ์ฝ์ด๋น ํ๋์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ -_N_์ ์ ๋ฌํ์ฌ _N_๊ฐ์ ์ฝ์ด๋ฅผ ์ฌ์ฉํ์ง ์์ ์ํ๋ก ๋ ์ ์์ต๋๋ค(ํ๋ ์ด์์ ์ค๋ ๋๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ์ธ).
๊ตฌ์กฐํ๋ ํ๊ฐ๊ธฐ ๋ก๊ทธ์ ์ถ๋ ฅ์ ์ ์ดํ๋ ์ต์
--evaluator-log=<file>
[๊ณ ๊ธ] ํ๊ฐ๊ธฐ ์ฑ๋ฅ์ ๋ํ ๊ตฌ์กฐํ๋ ๋ก๊ทธ๋ฅผ ์ง์ ๋ ํ์ผ๋ก ์ถ๋ ฅํฉ๋๋ค. ์ด ๋ก๊ทธ ํ์ผ์ ํ์์ ์๊ณ ์์ด ๋ณ๊ฒฝ๋ ์ ์์ง๋ง ๋ ๊ฐ์ ์ค ๋ฐ๊ฟ ๋ฌธ์(๊ธฐ๋ณธ๊ฐ) ๋๋ --evaluator-log-minify
์ต์
์ด ์ ๋ฌ๋ ๊ฒฝ์ฐ ํ๋์ ๊ธฐ๋ณธ๊ฐ ๋ฌธ์๋ก ๊ตฌ๋ถ๋ JSON ๊ฐ์ฒด ์คํธ๋ฆผ์
๋๋ค. codeql generate log-summary <file>
์(๋ฅผ) ์ฌ์ฉํ์ฌ ์ด ํ์ผ์ ๋ํ ๋ณด๋ค ์์ ์ ์ธ ์์ฝ์ ์์ฑํ๊ณ ํ์ผ์ ์ง์ ๊ตฌ๋ฌธ ๋ถ์ํ์ง ๋ง์ญ์์ค. ํ์ผ์ด ์ด๋ฏธ ์์ผ๋ฉด ๋ฎ์ด์๋๋ค.
--evaluator-log-minify
[๊ณ ๊ธ] --evaluator-log
์ต์
์ ์ ๋ฌํ๋ ๊ฒฝ์ฐ ์ด ์ต์
๋ ์ ๋ฌํ๋ฉด ์์ฑ๋๋ JSON ๋ก๊ทธ์ ํฌ๊ธฐ๊ฐ ์ต์ํ๋์ง๋ง ๊ฐ๋
์ฑ์ด ํจ์ฌ ๋จ์ด์ง๋๋ค.
๊ฐ์ ธ์จ ํธ๋ฉ์ ๊ฒ์ฌํ๋ ์ต์
--[no-]check-undefined-labels
[๊ณ ๊ธ] ์ ์๋์ง ์์ ๋ ์ด๋ธ์ ๋ํ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
--[no-]check-unused-labels
[๊ณ ๊ธ] ์ฌ์ฉํ์ง ์๋ ๋ ์ด๋ธ์ ๋ํ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
--[no-]check-repeated-labels
[๊ณ ๊ธ] ๋ฐ๋ณต๋๋ ๋ ์ด๋ธ์ ๋ํ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
--[no-]check-redefined-labels
[๊ณ ๊ธ] ๋ค์ ์ ์๋ ๋ ์ด๋ธ์ ๋ํ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
--[no-]check-use-before-definition
[๊ณ ๊ธ] ์ ์ํ๊ธฐ ์ ์ ์ฌ์ฉ๋ ๋ ์ด๋ธ์ ๋ํ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
--[no-]fail-on-trap-errors
[๊ณ ๊ธ] ํธ๋ฉ ๊ฐ์ ธ์ค๊ธฐ ์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด 0์ด ์๋ ๊ฐ์ผ๋ก ์ข ๋ฃํฉ๋๋ค.
--[no-]include-location-in-star
[๊ณ ๊ธ] ์ถ์ฒ๊ฐ ๋ ํธ๋ฉ ํ์ผ์ ์์น๋ฅผ ์ธ์ฝ๋ฉํ๋ ์ํฐํฐ ID๋ฅผ ์์ฑํฉ๋๋ค. ํธ๋ฉ ์์ฑ๊ธฐ ๋๋ฒ๊น ์ ์ ์ฉํ ์ ์์ง๋ง ๋ฐ์ดํฐ ์ธํธ์์ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค.
--[no-]linkage-aware-import
[๊ณ ๊ธ] codeql ๋ฐ์ดํฐ ์ธํธ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์ฐ๊ฒฐ ์ธ์ (๊ธฐ๋ณธ๊ฐ) ์ธ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ์ ์ด ๋ถ๋ถ์ด ๋๋ฌด ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์์ ์ด ์ต์ ์ ์ฌ์ฉํ์ง ์๋๋ก ์ค์ ํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ๋๋ฅผ ๋ฎ์ถ๋ ๋์ ์์ ์ ์งํํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
v2.15.3
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ผ๋ฐ ์ต์
-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
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.