func()

in controllers/codebase/service/chain/put_project.go [122:158]


func (h *PutProject) createProject(
	ctx context.Context,
	codebase *codebaseApi.Codebase,
	gitServer *codebaseApi.GitServer,
	workDir string,
) error {
	gitServerSecret := &corev1.Secret{}
	if err := h.client.Get(ctx, client.ObjectKey{Name: gitServer.Spec.NameSshKeySecret, Namespace: codebase.Namespace}, gitServerSecret); err != nil {
		return fmt.Errorf("failed to get git server secret: %w", err)
	}

	privateSSHKey := string(gitServerSecret.Data[util.PrivateSShKeyName])
	gitProviderToken := string(gitServerSecret.Data[util.GitServerSecretTokenField])

	if gitServer.Spec.GitProvider == codebaseApi.GitProviderGerrit {
		err := h.createGerritProject(ctx, gitServer, privateSSHKey, codebase.Spec.GetProjectID())
		if err != nil {
			return fmt.Errorf("failed to create project in Gerrit for codebase %v: %w", codebase.Name, err)
		}
	} else {
		if err := h.createGitThirdPartyProject(ctx, gitServer, gitProviderToken, codebase.Spec.GetProjectID()); err != nil {
			return err
		}
	}

	err := h.pushProject(ctx, gitServer, privateSSHKey, codebase.Spec.GetProjectID(), workDir)
	if err != nil {
		return err
	}

	err = h.setDefaultBranch(ctx, gitServer, codebase, gitProviderToken, privateSSHKey)
	if err != nil {
		return err
	}

	return nil
}