From e92962b06d22b7471267a2cf42d39c63fe1e4865 Mon Sep 17 00:00:00 2001 From: Dhruv Date: Thu, 5 Dec 2024 13:50:34 +0530 Subject: [PATCH] fix: [CDE-540]: Adding a check for user name and email during code clone operation. (#3596) ### Description This PR introduces two changes 1. Adding a check for user's name and email before cloning the code inside the gitspace container. This will non-block non-harness repos. 2. Adding an explicit check for the media folder's path during VSCode web setup. --------- --- app/gitspace/orchestrator/git/git_impl.go | 20 +++++++++++--------- app/gitspace/orchestrator/ide/vscodeweb.go | 4 ++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/gitspace/orchestrator/git/git_impl.go b/app/gitspace/orchestrator/git/git_impl.go index 3bc1d0431..bdc749f26 100644 --- a/app/gitspace/orchestrator/git/git_impl.go +++ b/app/gitspace/orchestrator/git/git_impl.go @@ -92,15 +92,17 @@ func (g *ServiceImpl) CloneCode( "failed to parse clone url %s: %w", resolvedRepoDetails.CloneURL, err) } cloneURL.User = nil - script, err := template.GenerateScriptFromTemplate( - templateCloneCode, &template.CloneCodePayload{ - RepoURL: cloneURL.String(), - Image: defaultBaseImage, - Branch: resolvedRepoDetails.Branch, - RepoName: resolvedRepoDetails.RepoName, - Email: resolvedRepoDetails.Credentials.Email, - Name: resolvedRepoDetails.Credentials.Name, - }) + templatePayload := template.CloneCodePayload{ + RepoURL: cloneURL.String(), + Image: defaultBaseImage, + Branch: resolvedRepoDetails.Branch, + RepoName: resolvedRepoDetails.RepoName, + } + if resolvedRepoDetails.Credentials != nil { + templatePayload.Email = resolvedRepoDetails.Credentials.Email + templatePayload.Name = resolvedRepoDetails.Credentials.Name + } + script, err := template.GenerateScriptFromTemplate(templateCloneCode, &templatePayload) if err != nil { return nil, fmt.Errorf( "failed to generate scipt to clone code from template %s: %w", templateCloneCode, err) diff --git a/app/gitspace/orchestrator/ide/vscodeweb.go b/app/gitspace/orchestrator/ide/vscodeweb.go index caf31af97..9c3ebddaf 100644 --- a/app/gitspace/orchestrator/ide/vscodeweb.go +++ b/app/gitspace/orchestrator/ide/vscodeweb.go @@ -82,6 +82,10 @@ func (v *VSCodeWeb) Setup(ctx context.Context, exec *devcontainer.Exec) ([]byte, } mediaFolderPath := path[startIndex+len(startMarker) : endIndex] + if len(mediaFolderPath) == 0 { + return nil, fmt.Errorf("media folder path should not be empty, VSCode web is not installed") + } + err = v.copyMediaToContainer(ctx, exec, mediaFolderPath) if err != nil { return nil, fmt.Errorf("failed to copy media folder to container at path %s: %w", mediaFolderPath, err)