allow connection details on create

This commit is contained in:
Saxon Fletcher committed 2025-06-23 15:04:57 +10:00
1 parent d9e62180dd
commit 4a9c090fa8
4 files changed
+156 -69

No files matched your search

@@ -136,10 +136,10 @@ export const CreateBranchModal = ({ visible, onClose }: CreateBranchModalProps)
return
}
if (val.gitBranchName && val.gitBranchName.length > 0 && githubConnection?.id) {
if (val.gitBranchName && val.gitBranchName.length > 0 && githubConnection?.repository.id) {
try {
await checkGithubBranchValidity({
connectionId: githubConnection.id,
repositoryId: githubConnection.repository.id,
branchName: val.gitBranchName,
})
// valid – no issues added
@@ -72,8 +72,6 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
enabled: visible && Boolean(gitHubAuthorization),
})
console.log('githubReposData', githubReposData)
const { data: connections } = useGitHubConnectionsQuery(
{
organizationId: selectedOrganization?.id,
@@ -157,10 +155,10 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
return
}
if (existingConnection?.id && val.branchName && val.branchName.length > 0) {
if (selectedRepo?.id && val.branchName && val.branchName.length > 0) {
try {
await checkGithubBranchValidity({
connectionId: Number(existingConnection.id),
repositoryId: Number(selectedRepo.id),
branchName: val.branchName,
})
} catch (error) {
@@ -283,6 +281,9 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
installation_id: selectedRepo.installation_id!,
project_ref: projectRef,
repository_id: Number(selectedRepo.id),
workdir: data.supabaseDirectory,
supabaseChangesOnly: data.supabaseChangesOnly,
branchLimit: Number(data.branchLimit),
},
})
} else {
@@ -301,6 +302,9 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
installation_id: selectedRepo.installation_id!,
project_ref: projectRef,
repository_id: Number(selectedRepo.id),
workdir: data.supabaseDirectory,
supabaseChangesOnly: data.supabaseChangesOnly,
branchLimit: Number(data.branchLimit),
},
})
}
@@ -501,7 +505,7 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
<Input_Shadcn_
{...field}
autoComplete="off"
disabled={!existingConnection || !autoBranchingEnabled}
disabled={!autoBranchingEnabled}
/>
</FormControl_Shadcn_>
<div className="absolute top-2.5 right-3 flex items-center gap-2">
@@ -532,7 +536,7 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
{...field}
placeholder="supabase"
autoComplete="off"
disabled={!existingConnection || !autoBranchingEnabled}
disabled={!autoBranchingEnabled}
/>
</FormControl_Shadcn_>
<FormMessage_Shadcn_ />
@@ -554,7 +558,7 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
{...field}
type="number"
autoComplete="off"
disabled={!existingConnection || !autoBranchingEnabled}
disabled={!autoBranchingEnabled}
/>
</FormControl_Shadcn_>
<FormMessage_Shadcn_ />
@@ -575,7 +579,7 @@ const SidePanelGitHubRepoLinker = ({ projectRef }: SidePanelGitHubRepoLinkerProp
<Switch
checked={field.value}
onCheckedChange={(val) => field.onChange(val)}
disabled={!existingConnection || !autoBranchingEnabled}
disabled={!autoBranchingEnabled}
/>
</FormControl_Shadcn_>
</FormItemLayout>
@@ -5,20 +5,20 @@ import { get, handleError } from 'data/fetchers'
import type { ResponseError } from 'types'
export type GithubBranchVariables = {
connectionId: number
repositoryId: number
branchName: string
}
export async function checkGithubBranchValidity(
{ connectionId, branchName }: GithubBranchVariables,
{ repositoryId, branchName }: GithubBranchVariables,
signal?: AbortSignal
) {
const { data, error } = await get(
'/platform/integrations/github/branches/{connectionId}/{branchName}',
'/platform/integrations/github/repositories/{repositoryId}/branches/{branchName}',
{
params: {
path: {
connectionId,
repositoryId,
branchName,
},
},
+138 -55
View File
@@ -622,6 +622,44 @@ export interface paths {
patch?: never
trace?: never
}
'/platform/integrations/github/repositories/{repositoryId}/branches': {
parameters: {
query?: never
header?: never
path?: never
cookie?: never
}
/** List GitHub repository branches */
get: operations['GitHubRepositoriesController_listRepositoryBranches']
put?: never
post?: never
delete?: never
options?: never
head?: never
patch?: never
trace?: never
}
'/platform/integrations/github/repositories/{repositoryId}/branches/{branchName}': {
parameters: {
query?: never
header?: never
path?: never
cookie?: never
}
/**
* Get GitHub repository branch
* @deprecated
* @description This is a temporary endpoint before dashboard switches to combo box
*/
get: operations['GitHubRepositoriesController_getRepository']
put?: never
post?: never
delete?: never
options?: never
head?: never
patch?: never
trace?: never
}
'/platform/integrations/vercel': {
parameters: {
query?: never
@@ -2106,8 +2144,7 @@ export interface paths {
/** Gets project's logs */
get: operations['LogsController_getApiPaths']
put?: never
/** Post project's logs */
post: operations['LogsController_postApiPaths']
post?: never
delete?: never
options?: never
head?: never
@@ -4422,10 +4459,22 @@ export interface components {
CreateGitHubAuthorizationBody: {
code: string
}
CreateGitHubConnectionsBody: {
CreateGitHubConnectionBody: {
branch_limit?: number
installation_id: number
project_ref: string
repository_id: number
supabase_changes_only?: boolean
workdir?: string
}
CreateGitHubConnectionResponse: {
branch_limit: number
id: number
inserted_at: string
installation_id: number
supabase_changes_only: boolean
updated_at: string
workdir: string
}
CreateInvitationBody: {
email: string
@@ -5617,6 +5666,9 @@ export interface components {
sender_id: number
user_id: number
}
GitHubBranchResponse: {
name: string
}
GoTrueConfigResponse: {
API_MAX_REQUEST_DURATION: number | null
DB_MAX_POOL_SIZE: number | null
@@ -5958,6 +6010,14 @@ export interface components {
workdir: string
}[]
}
ListGitHubRepositoriesResponse: {
repositories: {
default_branch: string
id: number
installation_id: number
name: string
}[]
}
ListNotificationExceptionsResponse: {
exceptions: {
/** Format: uuid */
@@ -5991,6 +6051,11 @@ export interface components {
oauth_app_id: string
}[]
}
ListRepositoryBranchesResponse: {
branches: {
name: string
}[]
}
LoadBalancerDetailResponse: {
databases: {
identifier: string
@@ -6705,9 +6770,6 @@ export interface components {
name: string
schema: string
}
PostProjectLogsBody: {
sql: string
}
PreviewProjectTransferResponse: {
errors: {
key: string
@@ -9637,7 +9699,9 @@ export interface operations {
headers: {
[name: string]: unknown
}
content?: never
content: {
'application/json': components['schemas']['GitHubBranchResponse'][]
}
}
/** @description Failed to list GitHub connection branches */
500: {
@@ -9664,7 +9728,9 @@ export interface operations {
headers: {
[name: string]: unknown
}
content?: never
content: {
'application/json': components['schemas']['GitHubBranchResponse']
}
}
/** @description Failed to get GitHub connection branch */
500: {
@@ -9712,7 +9778,7 @@ export interface operations {
}
requestBody: {
content: {
'application/json': components['schemas']['CreateGitHubConnectionsBody']
'application/json': components['schemas']['CreateGitHubConnectionBody']
}
}
responses: {
@@ -9720,7 +9786,9 @@ export interface operations {
headers: {
[name: string]: unknown
}
content?: never
content: {
'application/json': components['schemas']['CreateGitHubConnectionResponse']
}
}
/** @description Failed to create project connections */
500: {
@@ -9800,7 +9868,9 @@ export interface operations {
headers: {
[name: string]: unknown
}
content?: never
content: {
'application/json': components['schemas']['ListGitHubRepositoriesResponse']
}
}
/** @description Failed to get GitHub repositories for user */
500: {
@@ -9811,6 +9881,63 @@ export interface operations {
}
}
}
GitHubRepositoriesController_listRepositoryBranches: {
parameters: {
query?: never
header?: never
path: {
repositoryId: number
}
cookie?: never
}
requestBody?: never
responses: {
200: {
headers: {
[name: string]: unknown
}
content: {
'application/json': components['schemas']['ListRepositoryBranchesResponse']
}
}
/** @description Failed to list GitHub repository branches */
500: {
headers: {
[name: string]: unknown
}
content?: never
}
}
}
GitHubRepositoriesController_getRepository: {
parameters: {
query?: never
header?: never
path: {
branchName: string
repositoryId: number
}
cookie?: never
}
requestBody?: never
responses: {
200: {
headers: {
[name: string]: unknown
}
content: {
'application/json': components['schemas']['GitHubBranchResponse']
}
}
/** @description Failed to get GitHub repository branch */
500: {
headers: {
[name: string]: unknown
}
content?: never
}
}
}
VercelIntegrationController_createVercelIntegration: {
parameters: {
query?: never
@@ -14482,50 +14609,6 @@ export interface operations {
}
}
}
LogsController_postApiPaths: {
parameters: {
query?: {
iso_timestamp_end?: string
iso_timestamp_start?: string
project?: string
sql?: string
}
header?: never
path: {
/** @description Project ref */
ref: string
}
cookie?: never
}
requestBody: {
content: {
'application/json': components['schemas']['PostProjectLogsBody']
}
}
responses: {
201: {
headers: {
[name: string]: unknown
}
content: {
'application/json': components['schemas']['AnalyticsResponse']
}
}
403: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Failed to POST project's logs */
500: {
headers: {
[name: string]: unknown
}
content?: never
}
}
}
UsageApiController_getApiCounts: {
parameters: {
query?: {