๋ฐฐ๊ฒฝ
#7 ์์ synchronize ์ด๋ฒคํธ๊ฐ ์ค๋ฉด ๋ณ๊ฒฝ๋ ํ์ผ๋ง ์ฌ๋ถ์ํ๋๋ก tagPatterns()(handlers/tag-patterns.js)์ changedFilenames ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ฐ์ด ์ฃผ์ด์ง๋ฉด ํด๋น ํ์ผ๋ง ๋ถ์ํด OpenAI ํธ์ถ๊ณผ subrequest ์ฌ์ฉ๋์ ์ค์
๋๋ค.
๋ฌธ์
changedFilenames๋ฅผ ์ค์ ๋ก ๊ณ์ฐํด์ ๋๊ธฐ๋ ์ฝ๋๋ handlers/webhooks.js:336(getChangedFilenames ํธ์ถ)๋ฟ์ธ๋ฐ, ์ด ๊ฒฝ๋ก๋ INTERNAL_SECRET/WORKER_URL์ด ์์ ๋๋ง ํ๋ in-process ํด๋ฐฑ์
๋๋ค(์ ๋ถ๊ธฐ์์ env.INTERNAL_SECRET && env.WORKER_URL๋ก ํํฐ๋ง ํ๋๋ฐ ์ด๋ ํญ์ ์ค์ ๋์ด์๋ ๊ฒ์ผ๋ก ์ถ์ ๋ฉ๋๋ค(prod์ด๋ฏ๋ก)).
|
} else if (env.OPENAI_API_KEY) { |
|
// INTERNAL_SECRET/WORKER_URL ๋ฏธ์ค์ ์ ๊ธฐ์กด ๋ฐฉ์์ผ๋ก ํด๋ฐฑ (๋์ผ invocation์์ ์์ฐจ ์คํ) |
|
console.warn("[handlePullRequestEvent] INTERNAL_SECRET or WORKER_URL not set, running handlers in-process"); |
|
|
|
try { |
|
// synchronize์ผ ๋๋ง ๋ณ๊ฒฝ ํ์ผ ๋ชฉ๋ก ์ถ์ถ (์ต์ ํ: #7) |
|
let changedFilenames = null; |
|
if (action === "synchronize" && payload.before && payload.after) { |
|
changedFilenames = await getChangedFilenames( |
|
repoOwner, |
|
repoName, |
|
payload.before, |
|
payload.after, |
|
appToken |
|
); |
์ด์์ WORKER_URL์ด ํญ์ ์ค์ ๋ผ ์์ด /internal/tag-patterns dispatch ๊ฒฝ๋ก(webhooks.js:300)๋ง ํ๋๋ค. ์ด ๊ฒฝ๋ก์ ํ์ด๋ก๋์๋ getChangedFilenames ํธ์ถ์ด ์๊ณ , ์ด๋ฅผ ๋ฐ๋ internal-dispatch.js์ handleTagPatterns()๋ tagPatterns()๋ฅผ 7๊ฐ ์ธ์๋ก๋ง ํธ์ถํด changedFilenames๊ฐ ๊ธฐ๋ณธ๊ฐ null(์ ์ฒด ๋ถ์)๋ก ๊ณ ์ ๋ฉ๋๋ค.
์ํฅ
- synchronize๋ง๋ค ๋ณ๊ฒฝ ์ ๋ ํ์ผ๊น์ง ์ ๋ถ ์ฌ๋ถ์ โ OpenAI ํ ํฐ ๋ญ๋น
tag-patterns.js ์๋จ ์ฃผ์์ subrequest ํ๋(50) cliff(์๋ฃจ์
ํ์ผ 12~13๊ฐ)์ ๋ค์ ๊ฑธ๋ฆด ์ํ ์ฆ๊ฐ
- #7์ด ํด๋ก์ฆ๋์ง๋ง ์ด์์์๋ ์ฌ์ค์ ๋ฏธ์ ์ฉ ์ํ
์ ์
webhooks.js handlePullRequestEvent: synchronize ์ dispatch ํ์ด๋ก๋ ๊ตฌ์ฑ ์ ์ getChangedFilenames ํธ์ถ โ payload์ ํฌํจ
internal-dispatch.js handleTagPatterns: payload์์ changedFilenames ๊บผ๋ด tagPatterns() 8๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ
๋ฐฐ๊ฒฝ
#7 ์์
synchronize์ด๋ฒคํธ๊ฐ ์ค๋ฉด ๋ณ๊ฒฝ๋ ํ์ผ๋ง ์ฌ๋ถ์ํ๋๋กtagPatterns()(handlers/tag-patterns.js)์changedFilenamesํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ฐ์ด ์ฃผ์ด์ง๋ฉด ํด๋น ํ์ผ๋ง ๋ถ์ํด OpenAI ํธ์ถ๊ณผ subrequest ์ฌ์ฉ๋์ ์ค์ ๋๋ค.๋ฌธ์
changedFilenames๋ฅผ ์ค์ ๋ก ๊ณ์ฐํด์ ๋๊ธฐ๋ ์ฝ๋๋handlers/webhooks.js:336(getChangedFilenamesํธ์ถ)๋ฟ์ธ๋ฐ, ์ด ๊ฒฝ๋ก๋INTERNAL_SECRET/WORKER_URL์ด ์์ ๋๋ง ํ๋ in-process ํด๋ฐฑ์ ๋๋ค(์ ๋ถ๊ธฐ์์env.INTERNAL_SECRET && env.WORKER_URL๋ก ํํฐ๋ง ํ๋๋ฐ ์ด๋ ํญ์ ์ค์ ๋์ด์๋ ๊ฒ์ผ๋ก ์ถ์ ๋ฉ๋๋ค(prod์ด๋ฏ๋ก)).github/handlers/webhooks.js
Lines 328 to 342 in ae1c441
์ด์์
WORKER_URL์ด ํญ์ ์ค์ ๋ผ ์์ด/internal/tag-patternsdispatch ๊ฒฝ๋ก(webhooks.js:300)๋ง ํ๋๋ค. ์ด ๊ฒฝ๋ก์ ํ์ด๋ก๋์๋getChangedFilenamesํธ์ถ์ด ์๊ณ , ์ด๋ฅผ ๋ฐ๋internal-dispatch.js์handleTagPatterns()๋tagPatterns()๋ฅผ 7๊ฐ ์ธ์๋ก๋ง ํธ์ถํดchangedFilenames๊ฐ ๊ธฐ๋ณธ๊ฐnull(์ ์ฒด ๋ถ์)๋ก ๊ณ ์ ๋ฉ๋๋ค.์ํฅ
tag-patterns.js์๋จ ์ฃผ์์ subrequest ํ๋(50) cliff(์๋ฃจ์ ํ์ผ 12~13๊ฐ)์ ๋ค์ ๊ฑธ๋ฆด ์ํ ์ฆ๊ฐ์ ์
webhooks.jshandlePullRequestEvent: synchronize ์ dispatch ํ์ด๋ก๋ ๊ตฌ์ฑ ์ ์getChangedFilenamesํธ์ถ โ payload์ ํฌํจinternal-dispatch.jshandleTagPatterns: payload์์changedFilenames๊บผ๋ดtagPatterns()8๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ