Skip to content

synchronize ์ตœ์ ํ™” disabled ์ด์Šˆย #47

Description

@SimYunSup

๋ฐฐ๊ฒฝ

#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

} 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๋ฒˆ์งธ ์ธ์ž๋กœ ์ „๋‹ฌ

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions