func()

in controllers/gerritproject/syncer.go [58:88]


func (r *Reconcile) syncGerritInstance(ctx context.Context, gr *gerritApi.Gerrit,
	allK8sGerritProjects []gerritApi.GerritProject,
) error {
	cl, err := r.service.GetRestClient(gr)
	if err != nil {
		return errors.Wrap(err, "unable to init gerrit client")
	}

	backendProjects, err := cl.ListProjects("CODE")
	if err != nil {
		return errors.Wrap(err, "unable to list projects from gerrit")
	}

	k8sProjects := filterGerritProjectsByGerrit(gr, allK8sGerritProjects)

	for _, backendProject := range backendProjects {
		k8sProject, ok := k8sProjects[backendProject.Name]
		if !ok {
			k8sProject, err = r.createGerritProject(ctx, gr, &backendProject)
			if err != nil {
				return errors.Wrap(err, "unable to create gerrit project")
			}
		}

		if err := r.syncProjectBranches(ctx, cl, k8sProject); err != nil {
			return errors.Wrap(err, "unable to sync gerrit project branches")
		}
	}

	return nil
}