Skip to main content

database interpret-results

[์—ฐ๊ฒฐ] ๊ณ„์‚ฐ๋œ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ SARIF ๋˜๋Š” CSV์™€ ๊ฐ™์€ ์˜๋ฏธ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.

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

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

  • GitHub Code Security๋ฅผ ์ง€์›ํ•˜๋Š” ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

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

์ฐธ๊ณ  ํ•ญ๋ชฉ

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

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

๊ฐœ์š”

Shell
codeql database interpret-results --format=<format> --output=<output> [--threads=<num>] <options>... -- <database> <file|dir|suite>...

์„ค๋ช…

[์—ฐ๊ฒฐ] ๊ณ„์‚ฐ๋œ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ SARIF ๋˜๋Š” CSV์™€ ๊ฐ™์€ ์˜๋ฏธ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” codeql database run-queries๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ณ„์‚ฐ๋˜๊ณ  ์ €์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ codeql database analyze๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋ฅผ ํ•จ๊ป˜ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.)

์˜ต์…˜

๊ธฐ๋ณธ ์˜ต์…˜

<database>

[ํ•„์ˆ˜] ์ฟผ๋ฆฌ๋œ CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

<file|dir|suite>...

์—ฌ๊ธฐ์„œ ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์˜ ์‚ฌ์–‘์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์ƒ๋žตํ•˜๋ฉด CLI๋Š” codeql database run-queries์™€ ๋™์ผํ•œ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ ˆํ•œ ์ฟผ๋ฆฌ ์ง‘ํ•ฉ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

(ํ–ฅํ›„ ๋ฒ„์ „์—์„œ๋Š” ์ด๋ฅผ ์ƒ๋žตํ•˜๊ณ  ๋Œ€์‹  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ํ•ด์„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์˜๊ด‘์Šค๋Ÿฌ์šด ๋ฏธ๋ž˜๋Š” ์•„์ง ์˜ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.)

--format=<format>

[ํ•„์ˆ˜] ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•  ํ˜•์‹์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

csv: ๊ทœ์น™ ๋ฐ ๊ฒฝ๊ณ  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์žˆ๋Š” ์—ด์„ ํฌํ•จํ•˜์—ฌ ํ˜•์‹์ด ์ง€์ •๋œ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๊ฐ’์ž…๋‹ˆ๋‹ค.

sarif-latest: ์ •์  ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ JSON ๊ธฐ๋ฐ˜ ํ˜•์‹์ธ SARIF(์ •์  ๋ถ„์„ ๊ฒฐ๊ณผ ๊ตํ™˜ ํ˜•์‹)์ž…๋‹ˆ๋‹ค. ์ด ํ˜•์‹ ์˜ต์…˜์€ ์ง€์›๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „(v2.1.0)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์„œ๋กœ ๋‹ค๋ฅธ CodeQL ๋ฒ„์ „ ๊ฐ„์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ SARIF๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ž๋™ํ™”์— ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

sarifv2.1.0: SARIF v2.1.0์ž…๋‹ˆ๋‹ค.

graphtext: ๊ทธ๋ž˜ํ”„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ…์ŠคํŠธ ํ˜•์‹์ž…๋‹ˆ๋‹ค. @kind ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋Š” ์ฟผ๋ฆฌ๋งŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

dgml: ๊ทธ๋ž˜ํ”„๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ XML ๊ธฐ๋ฐ˜ ํ˜•์‹์ธ Directed Graph Markup Language์ž…๋‹ˆ๋‹ค. @kind ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋Š” ์ฟผ๋ฆฌ๋งŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

dot: ๊ทธ๋ž˜ํ”„๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ํ˜•์‹์ธ Graphviz DOT ์–ธ์–ด์ž…๋‹ˆ๋‹ค. @kind ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋Š” ์ฟผ๋ฆฌ๋งŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

-o, --output=<output>

[ํ•„์ˆ˜] ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•  ์ถœ๋ ฅ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ํ˜•์‹์˜ ๊ฒฝ์šฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์—ฌ์•ผ ํ•˜๋ฉฐ ๊ฒฐ๊ณผ(๋˜๋Š” ์ด ๋ช…๋ น์ด ๋‘˜ ์ด์ƒ์˜ ์ฟผ๋ฆฌ ํ•ด์„์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐ๊ณผ)๋Š” ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

--max-paths=<maxPaths>

๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š” ๊ฐ ๊ฒฝ๊ณ ์— ๋Œ€ํ•ด ์ƒ์„ฑํ•  ์ตœ๋Œ€ ๊ฒฝ๋กœ ์ˆ˜์ž…๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: 4)

--[no-]sarif-add-file-contents

[SARIF ํ˜•์‹๋งŒ ํ•ด๋‹น] ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒฐ๊ณผ์—์„œ ์ฐธ์กฐ๋˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•œ ์ „์ฒด ํŒŒ์ผ ์ฝ˜ํ…์ธ ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

--[no-]sarif-add-snippets

[SARIF ํ˜•์‹๋งŒ ํ•ด๋‹น] ๊ฒฐ๊ณผ์— ๋ฉ˜์…˜๋œ ๊ฐ ์œ„์น˜์— ๋Œ€ํ•œ ์ฝ”๋“œ ์กฐ๊ฐ์„ ํฌํ•จํ•˜๋ฉฐ, ๋ณด๊ณ ๋œ ์œ„์น˜ ์•ž๋’ค์—๋Š” ๋‘ ์ค„์˜ ์ปจํ…์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

--[no-]sarif-add-query-help

[SARIF ํ˜•์‹๋งŒ] [์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ] ๋ชจ๋“  ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ Markdown ์ฟผ๋ฆฌ ๋„์›€๋ง์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. /path/to/query.md ํŒŒ์ผ์—์„œ /path/to/query.ql์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ๋„์›€๋ง์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋™์ž‘์€ ์‚ฌ์šฉ์ž ์ง€์ • ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ๋„์›€๋ง๋งŒ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, `codeql/<lang&rt;-queries` ํ˜•์‹์ด ์•„๋‹Œ ์ฟผ๋ฆฌ ํŒฉ์— ๋„์›€๋ง์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ codeql bqrs ํ•ด์„์— ์ „๋‹ฌ๋  ๋•Œ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--sarif-include-query-help=<mode>

[SARIF ํ˜•์‹๋งŒ] SARIF ์ถœ๋ ฅ์— ์ฟผ๋ฆฌ ๋„์›€๋ง์„ ํฌํ•จํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

always: ๋ชจ๋“  ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ๋„์›€๋ง์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

custom_queries_only (๊ธฐ๋ณธ๊ฐ’): ์‚ฌ์šฉ์ž ์ง€์ • ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฟผ๋ฆฌ ๋„์›€๋ง์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, `codeql/<lang&rt;-queries` ํ˜•์‹์ด ์•„๋‹Œ ์ฟผ๋ฆฌ ํŒฉ์— ์ฟผ๋ฆฌ ๋„์›€๋ง์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

never: ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ๋„์›€๋ง์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ codeql bqrs ํ•ด์„์— ์ „๋‹ฌ๋  ๋•Œ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

v2.15.2๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--no-sarif-include-alert-provenance

[๊ณ ๊ธ‰] [SARIF ํ˜•์‹๋งŒ] SARIF ์ถœ๋ ฅ์— ๊ฒฝ๊ณ  ์ถœ์ฒ˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

v2.18.1๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--[no-]sarif-group-rules-by-pack

[SARIF ํ˜•์‹๋งŒ ํ•ด๋‹น] <run>.tool.extensions ์†์„ฑ์˜ ํ•ด๋‹น QL ํŒฉ ์•„๋ž˜์— ๊ฐ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ๊ทœ์น™ ๊ฐœ์ฒด๋ฅผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ codeql bqrs ํ•ด์„์— ์ „๋‹ฌ๋  ๋•Œ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--[no-]sarif-multicause-markdown

[SARIF ํ˜•์‹๋งŒ ํ•ด๋‹น] ์—ฌ๋Ÿฌ ์›์ธ์ด ์žˆ๋Š” ๊ฒฝ๊ณ ์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜ ๋ฌธ์ž์—ด ์™ธ์—๋„ ์ถœ๋ ฅ์— Markdown ํ˜•์‹์˜ ํ•ญ๋ชฉ๋ณ„ ๋ชฉ๋ก์œผ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

--no-sarif-minify

[SARIF ํ˜•์‹๋งŒ] ์ž๋™ ์„œ์‹ ์ง€์ • SARIF ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ SARIF ์ถœ๋ ฅ์€ ์ถœ๋ ฅ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค.

--sarif-run-property=<String=String>

[SARIF ํ˜•์‹ ์ „์šฉ] ์ƒ์„ฑ๋œ SARIF '์‹คํ–‰' ์†์„ฑ ๋ชจ์Œ์— ์ถ”๊ฐ€ํ•  ํ‚ค ๊ฐ’ ์Œ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--no-group-results

[SARIF ํ˜•์‹๋งŒ ํ•ด๋‹น] ๊ณ ์œ ํ•œ ์œ„์น˜๋‹น ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹Œ ๋ฉ”์‹œ์ง€๋‹น ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

--csv-location-format=<csvLocationFormat>

CSV ์ถœ๋ ฅ์—์„œ ์œ„์น˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค. uri, line-column, offset-length ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: ํ–‰-์—ด)

--dot-location-url-format=<dotLocationUrlFormat>

DOT ์ถœ๋ ฅ์—์„œ ํŒŒ์ผ ์œ„์น˜ URL์„ ์ƒ์„ฑํ•˜๋Š” ํ˜•์‹์„ ์ •์˜ํ•˜๋Š” ํ˜•์‹ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. {path} {start:line} {start:column} {end:line} {end:column}, {offset}, {length} ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--[no-]sublanguage-file-coverage

[GitHub.com ๋ฐ GitHub Enterprise Server v3.12.0 ์ด์ƒ ์ „์šฉ] ํ•˜์œ„ ์–ธ์–ด ํŒŒ์ผ ์ ์šฉ ๋ฒ”์œ„ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. C ๋ฐ C++, Java ๋ฐ Kotlin, JavaScript ๋ฐ TypeScript์™€ ๊ฐ™์€ CodeQL ์ถ”์ถœ๊ธฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ์–ธ์–ด์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ํŒŒ์ผ ์ ์šฉ ๋ฒ”์œ„ ์ •๋ณด๋ฅผ ๊ณ„์‚ฐ, ํ‘œ์‹œ ๋ฐ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

v2.15.2๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--sarif-category=<category>

[SARIF ํ˜•์‹๋งŒ ํ•ด๋‹น] [๋งž์ถค] SARIF ์ถœ๋ ฅ์— ํฌํ•จํ•  ์ด ๋ถ„์„์˜ ๋ฒ”์ฃผ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์ฃผ๋Š” ๋™์ผํ•œ ์ปค๋ฐ‹ ๋ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ˆ˜ํ–‰๋˜์ง€๋งŒ ์–ธ์–ด๋‚˜ ์ฝ”๋“œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ๋ถ„์„์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋™์ผํ•œ ๋ฒ„์ „์˜ ์ฝ”๋“œ ๋ฒ ์ด์Šค๋ฅผ ๋ถ„์„ํ•˜๊ณ (์˜ˆ: ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๊ฒฝ์šฐ) ์ฝ”๋“œ ๊ฒ€์‚ฌ์—์„œ ํ”„๋ ˆ์  ํ…Œ์ด์…˜์„ ์œ„ํ•ด ๊ฒฐ๊ณผ๋ฅผ GitHub์— ์—…๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๊ฐ’์€ ๊ฐ ๋ถ„์„ ๊ฐ„์— ๋‹ฌ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์ฝ”๋“œ ๊ฒ€์‚ฌ์—์„œ ๋ถ„์„์ด ์„œ๋กœ๋ฅผ _๋Œ€์ฒด_ํ•˜์ง€ ์•Š๊ณ  _๋ณด์™„_ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค ์ค๋‹ˆ๋‹ค. (๊ฐ’์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ์ฝ”๋“œ ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋ถ„์„์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์ผ๊ด€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

์ด ๊ฐ’์€ <run>.automationDetails.id ์†์„ฑ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค(์•„์ง ์—†๋Š” ๊ฒฝ์šฐ ํ›„ํ–‰ ์Šฌ๋ž˜์‹œ๊ฐ€ ์ถ”๊ฐ€๋จ).

-j, --threads=<num>

๊ฒฝ๋กœ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์Šค๋ ˆ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค. 0์„ ์ „๋‹ฌํ•˜์—ฌ ์ปดํ“จํ„ฐ์˜ ์ฝ”์–ด๋‹น ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ -_N_์„ ์ „๋‹ฌํ•˜์—ฌ _N_๊ฐœ์˜ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ œ์™ธ).

--no-database-extension-packs

[๊ณ ๊ธ‰] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ํ™•์žฅ ํŒฉ์„ ์ฝ”๋“œ ๊ฒ€์‚ฌ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ๋˜๋Š” ๋ถ„์„๋œ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ 'ํ™•์žฅ' ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ €์žฅ๋œ ํ™•์žฅ ํŒŒ์ผ์—์„œ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

--[no-]print-diagnostics-summary

๋ถ„์„๋œ ์ง„๋‹จ ์š”์•ฝ์„ ํ‘œ์ค€ ์ถœ๋ ฅ์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

--[no-]print-metrics-summary

๋ถ„์„๋œ ๋ฉ”ํŠธ๋ฆญ ์š”์•ฝ์„ ํ‘œ์ค€ ์ถœ๋ ฅ์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

--[no-]print-baseline-loc

ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๊ณ„์‚ฐ๋˜๋Š” ์ฝ”๋“œ ์ค„ ๊ธฐ์ค€์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

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 ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์žฌ์ •์˜๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋ฅผ ํ•ด์„ํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ™•์žฅ์„ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜

--model-packs=<name@range>...

ํ‰๊ฐ€ํ•˜๋ ค๋Š” ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ ํŒฉ์œผ๋กœ ์‚ฌ์šฉํ•  CodeQL ํŒฉ ์ด๋ฆ„ ๋ชฉ๋ก(๊ฐ๊ฐ ์„ ํƒ์  ๋ฒ„์ „ ๋ฒ”์œ„ ํฌํ•จ)์ž…๋‹ˆ๋‹ค.

QL ํŒฉ์„ ์ฐพ๊ธฐ ์œ„ํ•œ ์˜ต์…˜(์ฟผ๋ฆฌ ๋„๊ตฌ ๋ชจ์Œ์„ ํ•ด์„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ)

--search-path=<dir>[:<dir>...]

QL ํŒฉ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๊ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” QL ํŒฉ(๋˜๋Š” ๋ฃจํŠธ์— .codeqlmanifest.json ํŒŒ์ผ์ด ํฌํ•จ๋œ ํŒฉ ๋ฒˆ๋“ค) ๋˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ง๊ณ„ ๋ถ€๋ชจ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ์— ๋‘˜ ์ด์ƒ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ˆœ์„œ๊ฐ€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ํŒฉ ์ด๋ฆ„์ด ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ ์ค‘ ๋‘˜ ์ด์ƒ์—์„œ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์ง€์ •๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค CodeQL ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ฒดํฌ ์•„์›ƒ์—์„œ ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉด ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์••์ถ•์„ ํ‘ผ CodeQL ํˆด์ฒด์ธ์˜ ํ˜•์ œ๋กœ CodeQL ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฒดํฌ ์•„์›ƒํ•œ ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜•์ œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ฐพ์„ ์ˆ˜ ์—†๋Š” QL ํŒฉ์œผ๋กœ ํ•ญ์ƒ ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. (์ด ๊ธฐ๋ณธ๊ฐ’์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋ณ„ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ --search-path๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค).

(์ฐธ๊ณ : Windows์—์„œ๋Š” ๊ฒฝ๋กœ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ;์ž…๋‹ˆ๋‹ค.)

--additional-packs=<dir>[:<dir>...]

์ด ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ด ์ง€์ •๋œ ๊ฒฝ์šฐ --search-path์— ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ณด๋‹ค ๋จผ์ € ํŒฉ์ด ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ์ด์˜ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์„ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์œ„์น˜์—์„œ ํŒฉ ์ด๋ฆ„์„ ์ฐพ์„ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ ๊ฒฝ๋กœ์—๋„ ํ‘œ์‹œ๋˜๋Š” ํŒฉ์˜ ์ƒˆ ๋ฒ„์ „์„ ์ผ์‹œ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์ด ์˜ต์…˜์„ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋‚ด๋ถ€ ์ž‘์—…์—์„œ๋Š” ๊ตฌ์„ฑ๋œ ๊ฐ’์„ ์žฌ์ •์˜ํ•˜์—ฌ ์ฆ‰์‹œ ์ด ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

(์ฐธ๊ณ : Windows์—์„œ๋Š” ๊ฒฝ๋กœ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ;์ž…๋‹ˆ๋‹ค.)

์ผ๋ฐ˜ ์˜ต์…˜

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