์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help
๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql dataset import --dbscheme=<file> [--threads=<num>] <options>... -- <dataset> <trap>...
codeql dataset import --dbscheme=<file> [--threads=<num>] <options>... -- <dataset> <trap>...
์ค๋ช
[์ฐ๊ฒฐ] ํธ๋ฉ ํ์ผ ์งํฉ์ ์์ ๋ฐ์ดํฐ ์ธํธ๋ก ๊ฐ์ ธ์ต๋๋ค.
๋ฐ์ดํฐ ์ธํธ๋ฅผ ํธ๋ฉ ํ์ผ๋ก ์ฑ์ ๋ง๋ค๊ฑฐ๋ ํธ๋ฉ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์กด ๋ฐ์ดํฐ ์ธํธ์ ์ถ๊ฐํฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ ์ ๋ฐ์ดํธ๋ ์ฌ๋ฐ๋ฅธ dbscheme์ด ์๊ณ ํด๋น ID ํ์ด ์ด๊ธฐ ๊ฐ์ ธ์ค๊ธฐ์์ ์ ์ง๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค.
์ต์
๊ธฐ๋ณธ ์ต์
<dataset>
[ํ์] ๋ง๋ค๊ฑฐ๋ ์ ๋ฐ์ดํธํ ์์ QL ๋ฐ์ดํฐ ์ธํธ์ ๊ฒฝ๋ก์ ๋๋ค. ๋๋ ํฐ๋ฆฌ๊ฐ ์์ง ์กด์ฌํ์ง ์์ผ๋ฉด ๋ง๋ค์ด์ง๋๋ค.
<trap>...
๊ฐ์ ธ์ฌ .trap(.gz) ํ์ผ ๋๋ .trap(.gz) ํ์ผ์ ์ฌ๊ท์ ์ผ๋ก ๊ฒ์ํ ๋๋ ํฐ๋ฆฌ์ ๋ํ ๊ฒฝ๋ก์ ๋๋ค. ํ์ผ์ด ์ง์ ๋์ง ์์ผ๋ฉด ๋น ๋ฐ์ดํฐ ์ธํธ๊ฐ ๋ง๋ค์ด์ง๋๋ค.
-S, --dbscheme=<file>
[ํ์] ๊ฐ์ ธ์ค๋ ค๋ ํธ๋ฉ ํ์ผ์ ์ค๋ช ํ๋ dbscheme ์ ์์ ๋๋ค.
-j, --threads=<num>
๊ฐ์ ธ์ค๊ธฐ ์์ ์ ํด๋น ์ค๋ ๋ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค. 0์ ์ ๋ฌํ์ฌ ์ปดํจํฐ์ ์ฝ์ด๋น ํ๋์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ -_N_์ ์ ๋ฌํ์ฌ _N_๊ฐ์ ์ฝ์ด๋ฅผ ์ฌ์ฉํ์ง ์์ ์ํ๋ก ๋ ์ ์์ต๋๋ค(ํ๋ ์ด์์ ์ค๋ ๋๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ์ธ).
--[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
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.