From f27baba694af0820e3b77ac4ea1d6322dc17aa3f Mon Sep 17 00:00:00 2001 From: Tpuljak Date: Tue, 5 Mar 2024 16:06:45 +0000 Subject: [PATCH] feat: clone repo on specific branch or SHA --- pkg/provider/util/clone_repository.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/provider/util/clone_repository.go b/pkg/provider/util/clone_repository.go index 75e6da8..f91ac79 100644 --- a/pkg/provider/util/clone_repository.go +++ b/pkg/provider/util/clone_repository.go @@ -14,10 +14,23 @@ func CloneRepository(client *client.Client, project *types.Project, clonePath st "project": project.Name, }).Info("Cloning repository: " + repo.Url) + cloneCmd := []string{"git", "clone", repo.Url, clonePath} + + if repo.Branch != "" && repo.Branch != repo.Sha { + cloneCmd = append(cloneCmd, "-b", repo.Branch, "--single-branch") + } + _, err := ExecSync(client, GetContainerName(project), docker_types.ExecConfig{ User: "daytona", - Cmd: []string{"git", "clone", repo.Url, clonePath}, + Cmd: cloneCmd, }, nil) + if repo.Sha != "" && repo.Branch == repo.Sha { + _, err = ExecSync(client, GetContainerName(project), docker_types.ExecConfig{ + User: "daytona", + Cmd: []string{"git", "checkout", repo.Sha}, + }, nil) + } + return err }