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
}