github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/lib/project/open_or_clone.go (about)

     1  package projectLib
     2  
     3  import (
     4  	git "github.com/taubyte/go-simple-git"
     5  	projectI18n "github.com/taubyte/tau-cli/i18n/project"
     6  	"github.com/taubyte/tau-cli/singletons/config"
     7  )
     8  
     9  func (h *repositoryHandler) openOrCloneProject(profile config.Profile, tauProject config.Project, embedToken bool) error {
    10  	project, err := projectByName(h.projectName)
    11  	if err != nil {
    12  		return err
    13  	}
    14  
    15  	repoData, err := project.Repositories()
    16  	if err != nil {
    17  		return projectI18n.GettingRepositoryURLsFailed(h.projectName, err)
    18  	}
    19  
    20  	configUrl := git.URL(CleanGitURL(repoData.Configuration.Url))
    21  	codeUrl := git.URL(CleanGitURL(repoData.Code.Url))
    22  
    23  	var tokenOption git.Option
    24  	if embedToken {
    25  		tokenOption = git.EmbeddedToken(profile.Token)
    26  	} else {
    27  		tokenOption = git.Token(profile.Token)
    28  	}
    29  
    30  	h.config, err = h.openOrClone(profile, tauProject.ConfigLoc(), configUrl, tokenOption)
    31  	if err != nil {
    32  		return err
    33  	}
    34  
    35  	h.code, err = h.openOrClone(profile, tauProject.CodeLoc(), codeUrl, tokenOption)
    36  	if err != nil {
    37  		return err
    38  	}
    39  
    40  	return nil
    41  }