func()

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
}