Skip to content

Commit c7c4838

Browse files
authored
Merge pull request #62 from DaleStudy/fix/recognize-onboarding-prs
fix: Onboarding PR์„ ํ’€์ด ์ œ์ถœ ๋Œ€์ƒ์œผ๋กœ ์ธ์‹
2 parents 111c5b6 + 176eb40 commit c7c4838

4 files changed

Lines changed: 19 additions & 7 deletions

File tree

โ€ŽAGENTS.mdโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ wrangler.jsonc Worker ์„ค์ •๊ณผ ๊ณต๊ฐœ ๊ฐ’(vars)
5454
| `pull_request` (`opened`, `reopened`, `synchronize`) | Week ๊ฒ€์‚ฌ, AI ํ’€์ด ๋ถ„์„ check run(`tagPatterns`), ํ•™์Šต ํ˜„ํ™ฉ ๋Œ“๊ธ€(`postLearningStatus`) |
5555
| `issue_comment`, `pull_request_review_comment` (`created`) | `@dalestudy` ๋ฉ˜์…˜์— ์‘๋‹ตํ•œ๋‹ค. `approve`ยท`์Šน์ธ` ์ด๋ฉด PR ์„ ์Šน์ธํ•˜๊ณ , ๊ทธ ๋ฐ–์—๋Š” AI ๋ฆฌ๋ทฐ๋ฅผ ๋‹จ๋‹ค |
5656

57-
Week ๊ฒ€์‚ฌ๋Š” ์ œ๋ชฉ์ด `WEEK NN Solutions` ํ˜•ํƒœ์ธ ํ’€์ด PR ๋งŒ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ณ , ๊ฒฝ๊ณ  ๋Œ“๊ธ€์€ ๋ด‡์ด ๋‹จ ๊ฒƒ๋งŒ ์ง€์šด๋‹ค. AI ํ’€์ด ๋ถ„์„๊ณผ ํ•™์Šต ํ˜„ํ™ฉ ๋Œ“๊ธ€์€ ์ œ๋ชฉ๊ณผ ์ƒ๊ด€์—†์ด ๋Œ๋ฆฌ๊ณ (`[user] Onboarding` ๊ฐ™์€ PR ๋„ ํฌํ•จ), ํ’€์ด ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋‘ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ AI ๋ฅผ ๋ถ€๋ฅด์ง€ ์•Š๊ณ  ๊ฑด๋„ˆ๋›ด๋‹ค.
57+
Week ๊ฒ€์‚ฌ๋Š” ์ œ๋ชฉ์— `Week ์ˆซ์ž` ๋˜๋Š” `Onboarding`์ด ํฌํ•จ๋œ ํ’€์ด PR์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ณ , ๊ฒฝ๊ณ  ๋Œ“๊ธ€์€ ๋ด‡์ด ๋‹จ ๊ฒƒ๋งŒ ์ง€์šด๋‹ค. AI ํ’€์ด ๋ถ„์„๊ณผ ํ•™์Šต ํ˜„ํ™ฉ ๋Œ“๊ธ€์€ ์ œ๋ชฉ๊ณผ ์ƒ๊ด€์—†์ด ๋Œ๋ฆฌ๊ณ (`[user] Onboarding` ๊ฐ™์€ PR ๋„ ํฌํ•จ), ํ’€์ด ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋‘ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ AI ๋ฅผ ๋ถ€๋ฅด์ง€ ์•Š๊ณ  ๊ฑด๋„ˆ๋›ด๋‹ค.
5858

5959
### AI ์ž‘์—…์„ ๋ณ„๋„ invocation ์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ
6060

โ€Žhandlers/webhooks.test.jsโ€Ž

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,10 @@ describe("handlePullRequestEvent โ€” WEEK ๊ฐ€ ์—†๋Š” ์ œ๋ชฉ", () => {
409409
});
410410
});
411411

412-
it("Week ์ฒดํฌ๋Š” ๊ฑด๋„ˆ๋›ฐ์ง€๋งŒ AI ํ•ธ๋“ค๋Ÿฌ๋Š” ๋””์ŠคํŒจ์น˜ํ•œ๋‹ค", async () => {
412+
it.each([
413+
["[testuser] Onboarding", true],
414+
["docs: update README", false],
415+
])("%s: Week ๊ฒ€์‚ฌ ์—ฌ๋ถ€๋Š” %s์ด๊ณ  AI ํ•ธ๋“ค๋Ÿฌ๋Š” ๋””์ŠคํŒจ์น˜ํ•œ๋‹ค", async (title, checksWeek) => {
413416
const ctx = { waitUntil: vi.fn() };
414417
const env = {
415418
AI: FAKE_AI,
@@ -418,13 +421,16 @@ describe("handlePullRequestEvent โ€” WEEK ๊ฐ€ ์—†๋Š” ์ œ๋ชฉ", () => {
418421
};
419422

420423
const response = await handleWebhook(
421-
makeRequest("pull_request", onboardingPayload),
424+
makeRequest("pull_request", {
425+
...onboardingPayload,
426+
pull_request: { ...onboardingPayload.pull_request, title },
427+
}),
422428
env,
423429
ctx
424430
);
425431

426432
expect(response.status).toBe(200);
427-
expect(handleWeekComment).not.toHaveBeenCalled();
433+
expect(handleWeekComment).toHaveBeenCalledTimes(checksWeek ? 1 : 0);
428434
expect(ctx.waitUntil).toHaveBeenCalledTimes(2);
429435

430436
const fetchedUrls = globalThis.fetch.mock.calls.map(([url]) => url);

โ€Žutils/validation.jsโ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
import { ALLOWED_ORG } from "./constants.js";
66

7-
// "[dale] WEEK 07 Solutions" ๊ฐ™์€ ํ’€์ด ์ œ์ถœ PR ์ œ๋ชฉ.
8-
// ์ œ๋ชฉ ๊ทœ์น™์ด ๊ฐ•์ œ๋˜์ง€ ์•Š์•„ "Solutions"๋ฅผ ๋นผ๋จน๋Š” PR์ด ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์ฐจ๋งŒ ํ™•์ธํ•œ๋‹ค.
9-
const SOLUTION_TITLE_PATTERN = /week\s*\d+/i;
7+
// "[dale] WEEK 07 Solutions", "[dale] Onboarding" ๊ฐ™์€ ํ’€์ด ์ œ์ถœ PR ์ œ๋ชฉ.
8+
// ์ œ๋ชฉ ๊ทœ์น™์ด ๊ฐ•์ œ๋˜์ง€ ์•Š์•„ "Solutions"๋ฅผ ๋นผ๋จน๋Š” PR์ด ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์ฐจ ๋˜๋Š” Onboarding์„ ํ™•์ธํ•œ๋‹ค.
9+
const SOLUTION_TITLE_PATTERN = /week\s*\d+|onboarding/i;
1010

1111
/**
1212
* Organization ๊ฒ€์ฆ

โ€Žutils/validation.test.jsโ€Ž

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ describe("isSolutionPR", () => {
1010
expect(isSolutionPR("[user] WEEK15 Solutions")).toBe(true);
1111
});
1212

13+
it("Onboarding์ด ํฌํ•จ๋œ ์ œ๋ชฉ๋„ ํ’€์ด PR๋กœ ์ธ์‹ํ•œ๋‹ค", () => {
14+
expect(isSolutionPR("[user] Onboarding")).toBe(true);
15+
expect(isSolutionPR("[user] onboarding")).toBe(true);
16+
expect(isSolutionPR("[user] ONBOARDING Solutions")).toBe(true);
17+
});
18+
1319
it("๋ด‡ ํ…Œ์ŠคํŠธ๋‚˜ ์ €์žฅ์†Œ ์ •๋ฆฌ PR์€ ์ œ์™ธํ•œ๋‹ค", () => {
1420
expect(isSolutionPR("260806 ๋ด‡ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ")).toBe(false);
1521
expect(isSolutionPR("bot test")).toBe(false);

0 commit comments

Comments
ย (0)