in controller/merge_request/controller.go [129:177]
func (c *Controller) reconcile(ctx context.Context, request reconcile.Request) error {
var instance gerritService.GerritMergeRequest
if err := c.k8sClient.Get(ctx, request.NamespacedName, &instance); err != nil {
if k8sErrors.IsNotFound(err) {
c.logger.Infow("instance not found", "Request.Namespace", request.Namespace, "Request.Name", request.Name)
return nil
}
return fmt.Errorf("unable to get merge request from k8s, err: %w", err)
}
cb, err := c.codebaseService.Get(instance.Spec.ProjectName)
if err != nil {
return fmt.Errorf("unable to get project codebase, %w", err)
}
processRequest, err := codebase.ProcessRegistryVersion(ctx, c.versionFilter, cb, c.gerrit)
if err != nil {
return fmt.Errorf("unable to p, err: %w", err)
}
if !processRequest {
c.logger.Infow("reconciling merge request skipped, wrong registry version",
"Request.Namespace", instance.Namespace, "Request.Name", instance.Name)
return nil
}
if err := c.prepareMergeRequest(ctx, &instance); err != nil {
return fmt.Errorf("unable to prepare merge request, err: %w", err)
}
if err := c.autoApproveMergeRequest(ctx, &instance); err != nil {
return fmt.Errorf("unable to approve MR, err: %w", err)
}
if err := c.triggerJobProvisioner(ctx, &instance, cb); err != nil {
return fmt.Errorf("unable to triggerJobProvisioner MR, err: %w", err)
}
if err := c.addCachedFiles(ctx, &instance); err != nil {
return fmt.Errorf("unable to proceed cached files, %w", err)
}
if err := c.checkBuildJobStatus(ctx, &instance, cb); err != nil {
return fmt.Errorf("unable to check build status, %w", err)
}
return nil
}