์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help
๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql bqrs decode [--output=<file>] [--result-set=<name>] [--sort-key=<col>[,<col>...]] <options>... -- <file>
codeql bqrs decode [--output=<file>] [--result-set=<name>] [--sort-key=<col>[,<col>...]] <options>... -- <file>
์ค๋ช
BQRS์์ ๋ค๋ฅธ ์์์ผ๋ก ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ณํํฉ๋๋ค.
--output
์ต์
์ ์ง์ ํ์ง ์์ผ๋ฉด ๋์ฝ๋ฉ๋ ์ถ๋ ฅ์ด ํ์ค ์ถ๋ ฅ์ ๊ธฐ๋ก๋ฉ๋๋ค.
์ต์
๊ธฐ๋ณธ ์ต์
<file>
[ํ์] ๋์ฝ๋ฉํ BQRS ํ์ผ์ ๋๋ค.
-o, --output=<file>
์ํ๋ ์ถ๋ ฅ์ ์ธ ํ์ผ์ ๋๋ค.
-r, --result-set=<name>
๋์ฝ๋ฉํ BQRS ํ์ผ์์ ํน์ ๊ฒฐ๊ณผ ์งํฉ์ ์ ํํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฐ๊ณผ ์งํฉ์ codeql bqrs ์ ๋ณด๋ก ๋์ดํ ์ ์์ต๋๋ค.
๊ฒฐ๊ณผ ์งํฉ์ ์ ํํ์ง ์์ผ๋ฉด ์ ํํ ์ถ๋ ฅ ํ์ ๋ฐ ์ฒ๋ฆฌ ์ต์ ์ด ์ง์ํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฒฐ๊ณผ ์งํฉ์ด ๋์ฝ๋ฉ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
-k, --sort-key=<col>[,<col>...]
์ ํํ ๊ฒฐ๊ณผ ์งํฉ์ ํ์๋ ์ด๋ณ๋ก ์ ๋ ฌํฉ๋๋ค.
--sort-direction=<direction>[,<direction>...]
ํ์๋ ์ ๋ ฌ ๋ฐฉํฅ์ ์ฌ์ฉํ์ฌ ์ ํํ ๊ฒฐ๊ณผ ์งํฉ์ ์ ๋ ฌํฉ๋๋ค.
์ ๋ ฌ ๋ฐฉํฅ์ ์ง์ ํ์ง ์์ผ๋ฉด ๋ชจ๋ ์ด์ ์ค๋ฆ์ฐจ์์ด ์ฌ์ฉ๋ฉ๋๋ค.
์ถ๋ ฅ ํ์ ์ต์
--format=<fmt>
์ถ๋ ฅ ํ์์ ์ ํํฉ๋๋ค. ๋ค์์ ์ ํํ ์ ์์ต๋๋ค.
text
(๊ธฐ๋ณธ๊ฐ): ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ผ๋ฐ ํ
์คํธ ํ
์ด๋ธ์
๋๋ค.
csv
: ์ผํ๋ก ๊ตฌ๋ถ๋ ๊ฐ
json
: JSON์ ์คํธ๋ฆฌ๋ฐํฉ๋๋ค.
bqrs
: BQRS. ์ด ๊ฐ์ --output
์(๊ณผ) ํจ๊ป ์ฌ์ฉํด์ผ ํฉ๋๋ค. --sort-key
์(๊ณผ) ํจ๊ป ์ฌ์ฉํ๋ฉด ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค.
--no-titles
text
๋ฐ csv
ํ์์ ์ด ์ ๋ชฉ์ ์๋ตํฉ๋๋ค.
--entities=<fmt>[,<fmt>...]
[๊ณ ๊ธ] ์ํฐํฐ ํ์์ ๊ฒฐ๊ณผ ์ด์ด ํ์๋๋ ๋ฐฉ์์ ์ ์ดํฉ๋๋ค. ๋ค์ ์ ํ ํญ๋ชฉ์ ์ผํ๋ก ๊ตฌ๋ถํ ๋ชฉ๋ก์ ๋๋ค.
url
: ์ํฐํฐ ํ์์ ๋ํด ์ด๋ฌํ URL์ ์์ฑํ๊ธฐ ์ํด ์ฟผ๋ฆฌ๊ฐ ์ปดํ์ผ๋ ๊ฒฝ์ฐ ์๋ณธ ์์น๋ฅผ ์ฐธ์กฐํ๋ URL์
๋๋ค.
string
: ์ด์ ๋ํ ๋ฌธ์์ด์ ์์ฑํ๋๋ก ์ฟผ๋ฆฌ๊ฐ ์ปดํ์ผ๋ ๊ฒฝ์ฐ QL์ toString() ๋ฐฉ๋ฒ์ ์ํด ๊ณ์ฐ๋ ๋ฌธ์์ด์
๋๋ค.
id
: ์ํฐํฐ์ ๋ด๋ถ ID๋ก, ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์์ ์ ์์ต๋๋ค.
all
: BQRS ํ์ผ์ด ์ ๊ณตํ๋ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋ ์ด์ ํ์ํฉ๋๋ค.
๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ ํํ ๋ชจ๋ ์ต์ ์ด ํ์๋ฉ๋๋ค.
ํ์ด์ง ๋งค๊น ์ต์ (๋ํํ ํ๋ฐํธ ์๋์์ ์ฌ์ฉ)
--rows=<num>
[๊ณ ๊ธ] ์ ํํ ๊ฒฐ๊ณผ ์งํฉ์์ ์์ชฝ์์ ์์ํ๊ฑฐ๋ --start-at
์ด(๊ฐ) ์ง์ ํ ์์น์์ ์ด ๋ง์ ํ์ ์ถ๋ ฅํฉ๋๋ค.
--start-at=<offset>
[๊ณ ๊ธ] BQRS ํ์ผ์ ํน์ ๋ฐ์ดํธ ์คํ์
์ ์ ์๋ ํ ์ธ์๋ฅผ ์์ํฉ๋๋ค. ์คํ์
์ codeql bqrs ์ ๋ณด ๋๋ --rows
์ธํธ๋ฅผ ์ฌ์ฉํ ์ด์ ํธ์ถ์ JSON ์ถ๋ ฅ์ ์๋ "๋ค์" ํฌ์ธํฐ์์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ๋ค๋ฅธ ์คํ์
์ ์๋ฏธ์๋ ์ถ๋ ฅ ๋ฐ/๋๋ ๋ช
์์ ์ค๋ฅ๋ฅผ ์์ฑํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
ํญ์ --rows
์(๊ณผ) ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ฉฐ --sort-key
์(๊ณผ) ํธํ๋์ง ์์ต๋๋ค.
์ผ๋ฐ ์ต์
-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
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.