func()

in pkg/interceptor/edp_interceptor.go [101:152]


func (i *EDPInterceptor) Process(ctx context.Context, r *triggersv1.InterceptorRequest) *triggersv1.InterceptorResponse {
	event, err := i.processEvent(ctx, r)
	if err != nil {
		return interceptors.Fail(codes.InvalidArgument, err.Error())
	}

	if event.IsReviewCommentEvent() {
		if !event.HasPipelineRecheck {
			i.logger.Infof("Pipeline recheck comment is not found, skipping pipeline triggering")

			return &triggersv1.InterceptorResponse{
				Continue: false,
			}
		}

		i.logger.Infof("Found comment for recheck, triggering pipeline")
	}

	prepareCodebase(event.Codebase)

	codebaseBranchName := convertBranchToCadebaseBranchName(event.TargetBranch, event.Codebase.Name)
	trigger := true
	ns, _ := triggersv1.ParseTriggerID(r.Context.TriggerID)

	codebaseBranch := codebaseApi.CodebaseBranch{}
	if err = i.client.Get(ctx, ctrlClient.ObjectKey{Namespace: ns, Name: codebaseBranchName}, &codebaseBranch); err != nil {
		if !k8serrors.IsNotFound(err) {
			return interceptors.Fail(codes.Internal, fmt.Errorf("failed to get CodebaseBranch: %w", err).Error())
		}

		trigger = false

		i.logger.Infof("Codebasebranch with the name %s is not found, skipping pipeline triggering. "+
			"You can ignore this message otherwise add branch %s to codebase %s for the pipeline triggering",
			codebaseBranchName,
			event.TargetBranch,
			event.Codebase.Name,
		)
	}

	return &triggersv1.InterceptorResponse{
		Continue: trigger,
		Extensions: map[string]interface{}{
			"spec":           event.Codebase.Spec,
			"codebase":       event.Codebase.Name,
			"codebasebranch": codebaseBranchName,
			"targetBranch":   event.TargetBranch,
			"pullRequest":    event.PullRequest,
			"pipelines":      codebaseBranch.Spec.Pipelines,
		},
	}
}