์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help ๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql github upload-results --sarif=<file> [--github-auth-stdin] [--github-url=<url>] [--repository=<repository-name>] [--ref=<ref>] [--commit=<commit>] [--checkout-path=<path>] <options>...
codeql github upload-results --sarif=<file> [--github-auth-stdin] [--github-url=<url>] [--repository=<repository-name>] [--ref=<ref>] [--commit=<commit>] [--checkout-path=<path>] <options>...
์ค๋ช
SARIF ํ์ผ์ GitHub ์ฝ๋ ๊ฒ์ฌ์ ์ ๋ก๋ํฉ๋๋ค.
GitHub์ CodeQL ๋ถ์ ๊ฒฐ๊ณผ ์ ๋ก๋์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
GitHub ์ฑ ํ ํฐ ๋๋ ๊ฐ์ธ์ฉ ์ก์ธ์ค ํ ํฐ์ ์ค์ ํด์ผ ํฉ๋๋ค. ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก๋ --github-auth-stdin ํ๋๊ทธ๋ฅผ ์ค์ ํ๊ณ ํ์ค ์
๋ ฅ์ ํตํด ํ ํฐ์ ๋ช
๋ น์ ์ ๋ฌํ๋ ๊ฒ์
๋๋ค.
๋๋ GITHUB_TOKEN ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
์ด ํ ํฐ์๋ security_events ๋ฒ์๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ต์
๊ธฐ๋ณธ ์ต์
-s, --sarif=<file>
[ํ์] ์ฌ์ฉํ SARIF ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค. ์ด๋ github.com์ ์
๋ก๋ํ๊ธฐ ์ํด --format sarif-latest์(๋ฅผ) ์ฌ์ฉํ codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ์(๋๋ codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด์ ๊ฒฐ๊ณผ)์ ์ถ๋ ฅ์ด๊ฑฐ๋ GitHub Enterprise Server ์ธ์คํด์ค์ ๋ํด ์ง์๋๋ ์ ์ ํ ํ์ ํ๊ทธ์ฌ์ผ ํฉ๋๋ค(ํด๋น ๋ฆด๋ฆฌ์ค์์ ์ง์ํ๋ SARIF ๋ฒ์ ์ ์ฝ๋ ๊ฒ์ฌ์ ๋ํ SARIF ์ง์ ์ฐธ์กฐ).
-r, --repository=<repository-name>
์ ๋ก๋๋ฅผ ์ํ ์๋ํฌ์ธํธ๋ก ์ฌ์ฉํ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ ์์ ์ ๋ฐ ์ด๋ฆ(์: github/octocat)์ ๋๋ค. ์๋ต๋ ๊ฒฝ์ฐ CLI๋ ์ฒดํฌ ์์ ๊ฒฝ๋ก์์ ์ด์ ๋ํ ์๋ ๊ฐ์ง๋ฅผ ์๋ํฉ๋๋ค.
-f, --ref=<ref>
๋ถ์๋ ref์ ์ด๋ฆ์ ๋๋ค. ์ด ref๊ฐ pull request ๋ณํฉ ์ปค๋ฐ์ธ ๊ฒฝ์ฐ refs/pull/1234/merge ๋๋ _refs/pull/1234/head_๋ฅผ ์ฌ์ฉํฉ๋๋ค(์ด ์ปค๋ฐ์ด PR์ HEAD ๋๋ MERGE ์ปค๋ฐ์ ํด๋นํ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ค๋ฆ). ๊ทธ๋ ์ง ์์ผ๋ฉด _refs/heads/branch-name_์ ๋ถ๊ธฐ์ฌ์ผ ํฉ๋๋ค. ์๋ต๋ ๊ฒฝ์ฐ CLI๋ ์ฒดํฌ ์์ ๊ฒฝ๋ก์ ํ์ฌ ๋ถ๊ธฐ(์๋ ๊ฒฝ์ฐ)์์ ์๋์ผ๋ก ref์ ์ด๋ฆ์ ์ฑ์ฐ๋ ์๋๋ฅผ ํฉ๋๋ค.
-c, --commit=<commit>
๋ถ์๋ ์ปค๋ฐ์ SHA์ ๋๋ค. ์๋ต๋ ๊ฒฝ์ฐ CLI๋ ์ฒดํฌ ์์ ๊ฒฝ๋ก์์ ์ด์ ๋ํ ์๋ ๊ฐ์ง๋ฅผ ์๋ํฉ๋๋ค.
-p, --checkout-path=<path>
์ฒดํฌ ์์ ๊ฒฝ๋ก์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ์ ๋๋ค.
--merge
[๊ณ ๊ธ] ๋ ์ด์์ SARIF ํ์ผ์ ์ง์ ํ๊ณ ์ ๋ก๋ํ๊ธฐ ์ ์ ๋จ์ผ ํ์ผ๋ก ๋ณํฉํ ์ ์์ต๋๋ค. ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ํด์๋ง ๊ถ์ฅ๋ฉ๋๋ค. ์ ๋ถ์์ ๊ฒฝ์ฐ ๋ฒ์ฃผ๊ฐ ๋ค๋ฅธ ๋ ๊ฐ์ ๋ณ๋ SARIF ํ์ผ์ ์ ๋ก๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ์ต์ ์ CodeQL์์ ์์ฑ๋ SARIF ํ์ผ๊ณผ SARIF ๋ฒ์ 2.1.0(CodeQL์์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๋ฒ์ ์ SARIF)๊ณผ ํจ๊ปํ ๋๋ง ์๋ํฉ๋๋ค.
--no-wait-for-processing
๊ธฐ๋ณธ์ ์ผ๋ก CLI๋ GitHub๊ฐ SARIF ํ์ผ์ ์ต๋ 2๋ถ ๋์ ์ฒ๋ฆฌํ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ 0์ด ์๋ ์ข
๋ฃ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. --wait-for-processing-timeout์ ์ฌ์ฉํ์ฌ CLI๊ฐ ๋๊ธฐํ๋ ์๊ฐ์ ์ฌ์ฉ์ ์ ์ํ๊ฑฐ๋ --no-wait-for-processing์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
--wait-for-processing-timeout=<waitForProcessingTimeout>
์
๋ก๋๋ SARIF ํ์ผ์ด GitHub์์ ์ฒ๋ฆฌ๋ ๋๊น์ง CLI๊ฐ ๋๊ธฐํ๋ ์ต๋ ์๊ฐ(์ด)์
๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 120์ด(2๋ถ)์
๋๋ค.
์ด ์ต์
์ --wait-for-processing์ ์ฌ์ฉํ๋๋ก ์ค์ ํ ๊ฒฝ์ฐ์๋ง ์ ํจํฉ๋๋ค.
--format=<fmt>
์ถ๋ ฅ ํ์์ ์ ํํฉ๋๋ค. ๋ค์์ ์ ํํ ์ ์์ต๋๋ค.
text(๊ธฐ๋ณธ๊ฐ): SARIF ์
๋ก๋์ ์ํ๋ฅผ ์ถ์ ํ๋ URL์ ์ธ์ํฉ๋๋ค.
json: SARIF ์
๋ก๋ API ์์ฒญ์ ์๋ต ๋ณธ๋ฌธ์ ์ธ์ํฉ๋๋ค.
์ฝ๋ ๊ฒ์์ ๋ํ REST API ์๋ํฌ์ธํธ๋ ์ฐธ์กฐํ์ธ์.
SARIF ํ์ผ์ ์ ๋ก๋ ์์น๋ฅผ ๊ตฌ์ฑํ๋ ์ต์
-a, --github-auth-stdin
ํ์ค ์ ๋ ฅ์ ํตํด GitHub Apps ํ ํฐ ๋๋ ๊ฐ์ธ์ฉ ์ก์ธ์ค ํ ํฐ์ ์๋ฝํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด GITHUB_TOKEN ํ๊ฒฝ ๋ณ์๊ฐ ์ฌ์ ์๋ฉ๋๋ค.
-g, --github-url=<url>
์ฌ์ฉํ GitHub ์ธ์คํด์ค์ URL์ ๋๋ค. ์๋ตํ๋ฉด CLI๋ ์ฒดํฌ ์์ ๊ฒฝ๋ก์์ ์ด์ ๋ํ ์๋ ๊ฐ์ง๋ฅผ ์๋ํ๋ฉฐ, ์ด๊ฒ์ด ๊ฐ๋ฅํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ https://github.com/์ ๋๋ค.
์ผ๋ฐ ์ต์
-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๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.