์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help
๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql database export-diagnostics --format=<format> [--output=<output>] <options>... -- <database>
codeql database export-diagnostics --format=<format> [--output=<output>] <options>... -- <database>
์ค๋ช
[์คํ์ ] ์คํจํ ๋ถ์์ ๋ํ ์ง๋จ ์ ๋ณด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ด๋ณด๋ ๋๋ค.
v2.12.6
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ต์
๊ธฐ๋ณธ ์ต์
<database>
[ํ์] ์์ฑ ์ค์ธ CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ๋ก์ ๋๋ค. codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค init์ ์ฌ์ฉํ์ฌ ์ถ์ถํ ์ค๋น๊ฐ ๋์ด ์์ด์ผ ํฉ๋๋ค.
--db-cluster
์ต์
์ด ์ง์ ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๊ฐ ์๋๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉฐ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ชจ๋ ํจ๊ป ์ฒ๋ฆฌ๋ฉ๋๋ค.
--format=<format>
[ํ์] ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ ํ์์ ๋๋ค. ๋ค์ ์ค ํ๋์ ๋๋ค.
raw
: JSON ๊ฐ์ฒด๋ก, ํด์๋์ง ์๋ ์์ ์ง๋จ ๋ฉ์์ง ๋ชฉ๋ก์
๋๋ค.
sarif-latest
: ์ ์ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํ JSON ๊ธฐ๋ฐ ํ์์ธ ์ ์ ๋ถ์ ๊ฒฐ๊ณผ ๊ตํ ํ์(SARIF)์
๋๋ค. ์ด ํ์ ์ต์
์ ์ง์๋๋ ์ต์ ๋ฒ์ (v2.1.0)์ ์ฌ์ฉํฉ๋๋ค. ์ด ์ต์
์ ์๋ก ๋ค๋ฅธ CodeQL ๋ฒ์ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ SARIF๋ฅผ ์์ฑํ๋ฏ๋ก ์๋ํ์ ์ฌ์ฉํ๊ธฐ์ ์ ํฉํ์ง ์์ต๋๋ค.
sarifv2.1.0
: SARIF v2.1.0์
๋๋ค.
text
: ์ง๋จ ๋ฉ์์ง์ ๊ธ๋จธ๋ฆฌ ๊ธฐํธ ๋ชฉ๋ก์
๋๋ค.
--[no-]db-cluster
๋ช ๋ น์ค์ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๊ฐ ์๋๋ผ ์์ฑ ์ค์ธ ํ๋ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ๋ ๋๋ ํฐ๋ฆฌ์์ ๋ํ๋ ๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํจ๊ป ์ฒ๋ฆฌ๋ฉ๋๋ค.
-o, --output=<output>
์ง๋จ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ ์ถ๋ ฅ ๊ฒฝ๋ก์ ๋๋ค.
--sarif-exit-code=<sarifExitCode>
[SARIF ํ์ ์ ์ฉ] ์คํจํ ํ๋ก์ธ์ค์ ์ข ๋ฃ ์ฝ๋์ ๋๋ค.
--sarif-exit-code-description=<sarifExitCodeDescription>
[SARIF ํ์๋ง ํด๋น] ์คํจํ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ์ด์ ์ ๋๋ค.
--sarif-category=<category>
[SARIF ํ์๋ง ํด๋น] [๋ง์ถค] SARIF ์ถ๋ ฅ์ ํฌํจํ ์ด ๋ถ์์ ๋ฒ์ฃผ๋ฅผ ์ง์ ํฉ๋๋ค. ๋ฒ์ฃผ๋ ๋์ผํ ์ปค๋ฐ ๋ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ํ๋์ง๋ง ์ธ์ด๋ ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ์์ ์ํ๋๋ ์ฌ๋ฌ ๋ถ์์ ๊ตฌ๋ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋์ผํ ๋ฒ์ ์ ์ฝ๋ ๋ฒ ์ด์ค๋ฅผ ๋ถ์ํ๊ณ (์: ๋ค๋ฅธ ์ธ์ด์ ๊ฒฝ์ฐ) ์ฝ๋ ๊ฒ์ฌ์์ ํ๋ ์ ํ ์ด์ ์ ์ํด ๊ฒฐ๊ณผ๋ฅผ GitHub์ ์ ๋ก๋ํ๋ ๊ฒฝ์ฐ ์ด ๊ฐ์ ๊ฐ ๋ถ์ ๊ฐ์ ๋ฌ๋ผ์ผ ํฉ๋๋ค. ์ด ๊ฐ์ ์ฝ๋ ๊ฒ์ฌ์์ ๋ถ์์ด ์๋ก๋ฅผ _๋์ฒด_ํ์ง ์๊ณ _๋ณด์_ํ๋ค๋ ๊ฒ์ ์๋ ค ์ค๋๋ค. (๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ ์ฝ๋ ๋ฒ ์ด์ค์ ๋ํด ๋์ผํ ๋ถ์์ ์คํํ๋ ๋์ ์ผ๊ด๋์ด์ผ ํฉ๋๋ค.)
์ด ๊ฐ์ <run>.automationDetails.id
์์ฑ์ผ๋ก ํ์๋ฉ๋๋ค(์์ง ์๋ ๊ฒฝ์ฐ ํํ ์ฌ๋์๊ฐ ์ถ๊ฐ๋จ).
์ผ๋ฐ ์ต์
-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
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.