in pkg/event_processor/gerrit/gerrit.go [29:64]
func (p *EventProcessor) Process(ctx context.Context, body []byte, ns, _ string) (*event_processor.EventInfo, error) {
gerritEvent := &event_processor.GerritEvent{}
if err := json.Unmarshal(body, gerritEvent); err != nil {
return nil, fmt.Errorf("failed to unmarshal Gerrit event: %w", err)
}
if gerritEvent.Project.Name == "" {
return nil, errors.New("gerrit repository path empty")
}
if gerritEvent.Change.Branch == "" {
return nil, errors.New("gerrit target branch empty")
}
repoPath := event_processor.ConvertRepositoryPath(gerritEvent.Project.Name)
codebase, err := event_processor.GetCodebaseByRepoPath(ctx, p.ksClient, ns, repoPath)
if err != nil {
return nil, fmt.Errorf("failed to get codebase: %w", err)
}
event := &event_processor.EventInfo{
GitProvider: event_processor.GitProviderGerrit,
RepoPath: strings.ToLower(gerritEvent.Project.Name),
TargetBranch: gerritEvent.Change.Branch,
Type: event_processor.EventTypeMerge,
Codebase: codebase,
}
if gerritEvent.Type == event_processor.GerritEventTypeCommentAdded {
event.Type = event_processor.EventTypeReviewComment
event.HasPipelineRecheck = event_processor.ContainsPipelineRecheck(gerritEvent.Comment)
}
return event, nil
}