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.

---------
release/3.0.0 v3.0.1
Dhruv 2024-12-05 13:50:34 +05:30 committed by GitHub
parent fb65327419
commit e92962b06d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 9 deletions

View File

@ -92,15 +92,17 @@ func (g *ServiceImpl) CloneCode(
"failed to parse clone url %s: %w", resolvedRepoDetails.CloneURL, err) "failed to parse clone url %s: %w", resolvedRepoDetails.CloneURL, err)
} }
cloneURL.User = nil cloneURL.User = nil
script, err := template.GenerateScriptFromTemplate( templatePayload := template.CloneCodePayload{
templateCloneCode, &template.CloneCodePayload{ RepoURL: cloneURL.String(),
RepoURL: cloneURL.String(), Image: defaultBaseImage,
Image: defaultBaseImage, Branch: resolvedRepoDetails.Branch,
Branch: resolvedRepoDetails.Branch, RepoName: resolvedRepoDetails.RepoName,
RepoName: resolvedRepoDetails.RepoName, }
Email: resolvedRepoDetails.Credentials.Email, if resolvedRepoDetails.Credentials != nil {
Name: resolvedRepoDetails.Credentials.Name, templatePayload.Email = resolvedRepoDetails.Credentials.Email
}) templatePayload.Name = resolvedRepoDetails.Credentials.Name
}
script, err := template.GenerateScriptFromTemplate(templateCloneCode, &templatePayload)
if err != nil { if err != nil {
return nil, fmt.Errorf( return nil, fmt.Errorf(
"failed to generate scipt to clone code from template %s: %w", templateCloneCode, err) "failed to generate scipt to clone code from template %s: %w", templateCloneCode, err)

View File

@ -82,6 +82,10 @@ func (v *VSCodeWeb) Setup(ctx context.Context, exec *devcontainer.Exec) ([]byte,
} }
mediaFolderPath := path[startIndex+len(startMarker) : endIndex] 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) err = v.copyMediaToContainer(ctx, exec, mediaFolderPath)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to copy media folder to container at path %s: %w", mediaFolderPath, err) return nil, fmt.Errorf("failed to copy media folder to container at path %s: %w", mediaFolderPath, err)