func()

in pkg/interceptor/edp_interceptor.go [155:194]


func (i *EDPInterceptor) processEvent(ctx context.Context, r *triggersv1.InterceptorRequest) (*event_processor.EventInfo, error) {
	githubEventType, isGitHubEvent := r.Header["X-Github-Event"]
	gitLabEventType, isGitLabEvent := r.Header["X-Gitlab-Event"]
	bitbucketEventType, isBitbucketEvent := r.Header["X-Event-Key"]
	ns, _ := triggersv1.ParseTriggerID(r.Context.TriggerID)

	if isGitLabEvent {
		event, err := i.gitLabProcessor.Process(ctx, []byte(r.Body), ns, getEventTypeFromHeader(gitLabEventType))
		if err != nil {
			return nil, fmt.Errorf("failed to process GitLab event: %w", err)
		}

		return event, nil
	}

	if isGitHubEvent {
		event, err := i.gitHubProcessor.Process(ctx, []byte(r.Body), ns, getEventTypeFromHeader(githubEventType))
		if err != nil {
			return nil, fmt.Errorf("failed to process GitHub event: %w", err)
		}

		return event, nil
	}

	if isBitbucketEvent {
		event, err := i.bitbucketProcessor.Process(ctx, []byte(r.Body), ns, getEventTypeFromHeader(bitbucketEventType))
		if err != nil {
			return nil, fmt.Errorf("failed to process Bitbucket event: %w", err)
		}

		return event, nil
	}

	event, err := i.gerritProcessor.Process(ctx, []byte(r.Body), ns, "")
	if err != nil {
		return nil, fmt.Errorf("failed to process Gerrit event: %w", err)
	}

	return event, nil
}