Skip to main content

์ƒ์„ฑ๋œ ์ฝ”๋“œ์—์„œ ๋ฐœ๊ฒฌ๋œ ๊ฒฝ๊ณ 

code scanning์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ๋ถ„์„ํ•˜๋ ค๋Š” ์ฝ”๋“œ๋งŒ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

์ด ๋ฌธ์„œ์—์„œ๋Š” ์ด GitHub Enterprise Server ๋ฒ„์ „์˜ ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋œ CodeQL ์ž‘์—…๊ณผ ๊ด€๋ จ CodeQL CLI ๋ฒˆ๋“ค์˜ ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์—์„œ ๋” ์ตœ์‹  ๋ฒ„์ „์˜ CodeQL ์ž‘์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ตœ์‹  ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์˜GitHub Enterprise Cloud ๋ฒ„์ „์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ตœ์‹  ๋ฒ„์ „ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์–ดํ”Œ๋ผ์ด์–ธ์Šค์— ๋Œ€ํ•œ ์ฝ”๋“œ ๊ฒ€์‚ฌ ๊ตฌ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Java, Kotlin, Go, C, C++, C#๊ณผ ๊ฐ™์€ ์ปดํŒŒ์ผ๋œ ์–ธ์–ด์˜ ๊ฒฝ์šฐ CodeQL์€ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰ ์ค‘์— ๋นŒ๋“œ๋œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์„๋˜๋Š” ์ฝ”๋“œ์˜ ์–‘์„ ์ œํ•œํ•˜๋ ค๋ฉด run ๋ธ”๋ก์— ๊ณ ์œ ํ•œ ๋นŒ๋“œ ๋‹จ๊ณ„๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋ถ„์„ํ•˜๋ ค๋Š” ์ฝ”๋“œ๋งŒ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ณ ์œ ์˜ ๋นŒ๋“œ ๋‹จ๊ณ„ ์ง€์ •์„ pull_request ๋ฐ push ์ด๋ฒคํŠธ์—์„œ paths ๋˜๋Š” paths-ignore ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ์—๋งŒ ์›Œํฌํ”Œ๋กœ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Actions์— ๋Œ€ํ•œ ์›Œํฌํ”Œ๋กœ ๊ตฌ๋ฌธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๊ณ  CodeQL์ด ๋ถ„์„ํ•˜๋Š” JavaScript, Python ๋ฐ TypeScript์™€ ๊ฐ™์€ ์–ธ์–ด์˜ ๊ฒฝ์šฐ ๋ถ„์„ํ•  ์ฝ”๋“œ ์–‘์„ ์ œํ•œํ•˜๋Š” ์ถ”๊ฐ€ ๊ตฌ์„ฑ ์˜ต์…˜์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ์„ค์ • ์‚ฌ์šฉ์ž ์ง€์ •์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.