From 73a0f3ae24c3dc79c68d075b49dea3883d4ce694 Mon Sep 17 00:00:00 2001 From: Anirban Kar Date: Wed, 5 Mar 2025 04:23:01 +0530 Subject: [PATCH] fix: git clone modal to work with non main as default branch (#1428) --- .../components/RepositorySelectionDialog.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx b/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx index 06202850..5f07e727 100644 --- a/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx +++ b/app/components/@settings/tabs/connections/components/RepositorySelectionDialog.tsx @@ -292,11 +292,24 @@ export function RepositorySelectionDialog({ isOpen, onClose, onSelect }: Reposit const connection = getLocalStorage('github_connection'); const headers: HeadersInit = connection?.token ? { Authorization: `Bearer ${connection.token}` } : {}; - - // Fetch repository tree - const treeResponse = await fetch(`https://api.github.com/repos/${owner}/${repo}/git/trees/main?recursive=1`, { + const repoObjResponse = await fetch(`https://api.github.com/repos/${owner}/${repo}`, { headers, }); + const repoObjData = (await repoObjResponse.json()) as any; + + if (!repoObjData.default_branch) { + throw new Error('Failed to fetch repository branch'); + } + + const defaultBranch = repoObjData.default_branch; + + // Fetch repository tree + const treeResponse = await fetch( + `https://api.github.com/repos/${owner}/${repo}/git/trees/${defaultBranch}?recursive=1`, + { + headers, + }, + ); if (!treeResponse.ok) { throw new Error('Failed to fetch repository structure');