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
}