in controllers/codebase/service/chain/put_project.go [237:278]
func (h *PutProject) checkoutBranch(ctx context.Context, codebase *codebaseApi.Codebase, workDir string) error {
log := ctrl.LoggerFrom(ctx).WithValues(
"defaultBranch",
codebase.Spec.DefaultBranch,
"branchToCopy",
codebase.Spec.BranchToCopyInDefaultBranch,
)
repoUrl, err := util.GetRepoUrl(codebase)
if err != nil {
return fmt.Errorf("failed to build repo url: %w", err)
}
if codebase.Spec.BranchToCopyInDefaultBranch != "" && codebase.Spec.DefaultBranch != codebase.Spec.BranchToCopyInDefaultBranch {
log.Info("Start checkout branch to copy")
err = CheckoutBranch(repoUrl, workDir, codebase.Spec.BranchToCopyInDefaultBranch, h.git, codebase, h.client)
if err != nil {
return fmt.Errorf("failed to checkout default branch %s: %w", codebase.Spec.DefaultBranch, err)
}
log.Info("Start replace default branch")
err = h.replaceDefaultBranch(ctx, workDir, codebase.Spec.DefaultBranch, codebase.Spec.BranchToCopyInDefaultBranch)
if err != nil {
return fmt.Errorf("failed to replace master: %w", err)
}
return nil
}
log.Info("Start checkout branch")
err = CheckoutBranch(repoUrl, workDir, codebase.Spec.DefaultBranch, h.git, codebase, h.client)
if err != nil {
return fmt.Errorf("failed to checkout default branch %s: %w", codebase.Spec.DefaultBranch, err)
}
log.Info("Checkout branch finished")
return nil
}