From 717388ff3e6101f7855f78b48cbe14344b45a511 Mon Sep 17 00:00:00 2001 From: viktormarinho Date: Thu, 23 Apr 2026 11:45:50 -0300 Subject: [PATCH] fix(github): emit repo under the canonical `repo` key so automations match Mesh's EventTriggerEngine.paramsMatch compares trigger params to the event data with strict `data[key] === value`. The trigger-store.ts schema names the param `repo`, but the webhook handler was shipping the repository full name as `data.repository`, so every trigger with a `{ "repo": "owner/name" }` filter silently failed to match and no thread was ever fired. Also keeps `repository` as an alias so anything reading that key keeps working. Co-Authored-By: Claude Opus 4.7 (1M context) --- github/server/webhook.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/github/server/webhook.ts b/github/server/webhook.ts index bb5df84b..d00bcb19 100644 --- a/github/server/webhook.ts +++ b/github/server/webhook.ts @@ -156,6 +156,11 @@ export async function handleGitHubWebhook( event: fullEventType, subject, sender: payload.sender?.login, + // `repo` is the canonical key — matches the trigger params schema + // defined in trigger-store.ts (`z.object({ repo: z.string() })`) so + // Mesh's paramsMatch (strict `data[key] === value`) can filter by + // repository. `repository` is kept as an alias for payload clarity. + repo: payload.repository?.full_name, repository: payload.repository?.full_name, action: payload.action, payload,