From f495ea391f94265ba19370a1812ab405bde9a5ba Mon Sep 17 00:00:00 2001 From: Daniel Samson <12231216+daniel-samson@users.noreply.github.com> Date: Sun, 12 Apr 2026 16:12:04 +0100 Subject: [PATCH] Fix issue-label and pr-rework webhook handlers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - issue-label: Accept action "created" from Gitea (in addition to "labeled" and "label_updated") — Gitea sends "created" for new labels - pr-rework: Guard against missing review object to prevent TypeError crash when Gitea sends review webhook without review data Co-Authored-By: Claude Opus 4.6 --- src/handlers/issue-label.ts | 2 +- src/handlers/pr-rework.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/handlers/issue-label.ts b/src/handlers/issue-label.ts index 04d54db..219c67d 100644 --- a/src/handlers/issue-label.ts +++ b/src/handlers/issue-label.ts @@ -24,7 +24,7 @@ export function issueLabel(config: Config, queue: TaskQueue) { console.log(`[issue-label] action="${event.action}" issue=#${event.issue.number} labels=[${event.issue.labels.map((l) => l.name).join(", ")}]`); - if (event.action !== "label_updated" && event.action !== "labeled") { + if (!["labeled", "label_updated", "created"].includes(event.action)) { return c.text("ignored: not a label event", 200); } diff --git a/src/handlers/pr-rework.ts b/src/handlers/pr-rework.ts index 0425e64..893a618 100644 --- a/src/handlers/pr-rework.ts +++ b/src/handlers/pr-rework.ts @@ -16,6 +16,10 @@ export function prRework(config: Config, queue: TaskQueue) { return c.text("ignored: not a reviewed event", 200); } + if (!event.review) { + return c.text("ignored: no review data", 200); + } + const [org, repo] = event.repository.full_name.split("/"); const prNumber = event.pull_request.number; const reviewState = event.review.state.toLowerCase();