@@ -222,10 +222,8 @@ const canGoNext = computed(() => !isLastStep.value)
222222const canGoPrevious = computed(() => !isFirstStep.value)
223223
224224const canProceedFromGitHub = computed(() => {
225- const repositoryUrl = formData.value.repository.repository_url
226- return repositoryUrl &&
227- repositoryUrl.length > 0 &&
228- !isFetchingGitHub.value
225+ // Always allow proceeding from GitHub step (URL is optional)
226+ return !isFetchingGitHub.value
229227})
230228
231229const canProceedFromClaudeConfig = computed(() => {
@@ -236,7 +234,6 @@ const canProceedFromClaudeConfig = computed(() => {
236234const canSubmit = computed(() => {
237235 return formData.value.basic.name &&
238236 formData.value.basic.description &&
239- formData.value.repository.repository_url &&
240237 canProceedFromClaudeConfig.value
241238})
242239
@@ -312,11 +309,19 @@ const handleCancel = () => {
312309const handleGitHubStepNext = async () => {
313310 if (currentStep.value !== 0) return
314311
312+ const repositoryUrl = formData.value.repository.repository_url
313+
314+ // If no GitHub URL provided, skip fetching and go to next step
315+ if (!repositoryUrl || repositoryUrl.trim() === '') {
316+ nextStep()
317+ return
318+ }
319+
320+ // GitHub URL provided - fetch and validate
315321 try {
316322 isFetchingGitHub.value = true
317323 githubFetchError.value = null
318324
319- const repositoryUrl = formData.value.repository.repository_url
320325 const gitBranch = formData.value.repository.git_branch
321326
322327 // Call backend API to fetch repository data
@@ -413,7 +418,7 @@ const submitForm = async () => {
413418 }
414419
415420 // Construct the final payload for the backend API
416- const finalPayload = {
421+ const finalPayload: any = {
417422 // Basic Info
418423 name: formData.value.basic.name,
419424 description: formData.value.basic.description,
@@ -427,14 +432,6 @@ const submitForm = async () => {
427432 featured: formData.value.basic.featured,
428433 auto_install_new_default_team: formData.value.basic.auto_install_new_default_team,
429434
430- // Repository Info
431- repository_url: formData.value.repository.repository_url,
432- repository_source: formData.value.repository.repository_source,
433- git_branch: formData.value.repository.git_branch,
434-
435- // From auto-population or manual entry
436- website_url: formData.value.repository.repo_data?.homepage,
437-
438435 // New Configuration Schema (ADR-007)
439436 configuration_schema: formData.value.configuration_schema,
440437
@@ -449,6 +446,19 @@ const submitForm = async () => {
449446 remotes: extractedRemotes,
450447 };
451448
449+ // Only include repository fields if repository URL is provided
450+ const repositoryUrl = formData.value.repository.repository_url;
451+ if (repositoryUrl && repositoryUrl.trim() !== '') {
452+ finalPayload.repository_url = repositoryUrl;
453+ finalPayload.repository_source = formData.value.repository.repository_source;
454+ finalPayload.git_branch = formData.value.repository.git_branch;
455+
456+ // From auto-population or manual entry
457+ if (formData.value.repository.repo_data?.homepage) {
458+ finalPayload.website_url = formData.value.repository.repo_data.homepage;
459+ }
460+ }
461+
452462 await emit('submit', finalPayload)
453463
454464 } catch (error) {
0 commit comments