From 17f47fe15515ae2b3eefaab71d5c92305efbabb5 Mon Sep 17 00:00:00 2001 From: Muhammad Ibrahim Date: Wed, 22 Jul 2026 17:13:38 +0100 Subject: [PATCH] fix(github): store owner/repo as channelId so webhook registration works The repository used the numeric repo id as its value, so config.channelId was saved as e.g. "123456789" instead of "owner/repo". Webhook registration builds https://api.github.com/repos/${channelId}/hooks, which GitHub then parses as /repos/{owner}/{repo} and returns 404 (documentation_url: repos#update-a-repository). Use repo.fullName ("owner/repo") as the select value so channelId round-trips correctly, matching what the webhook and issue-sync code expect. --- .../admin/settings/integrations/github/github-config.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/web/src/components/admin/settings/integrations/github/github-config.tsx b/apps/web/src/components/admin/settings/integrations/github/github-config.tsx index bc380e34f..9eff44150 100644 --- a/apps/web/src/components/admin/settings/integrations/github/github-config.tsx +++ b/apps/web/src/components/admin/settings/integrations/github/github-config.tsx @@ -86,9 +86,9 @@ export function GitHubConfig({ updateMutation.mutate({ id: integrationId, enabled: checked }) } - const handleRepoChange = (repoId: string) => { - setSelectedRepo(repoId) - updateMutation.mutate({ id: integrationId, config: { channelId: repoId } }) + const handleRepoChange = (repoFullName: string) => { + setSelectedRepo(repoFullName) + updateMutation.mutate({ id: integrationId, config: { channelId: repoFullName } }) } const handleEventToggle = (eventId: string, checked: boolean) => { @@ -158,7 +158,7 @@ export function GitHubConfig({ {repos.map((repo) => ( - +
{repo.fullName}