func()

in internal/indexer/indexer.go [139:161]


func (i *Indexer) IndexRepository(ctx context.Context) (*IndexingResult, error) {
	if i.Writer == nil {
		return nil, errors.New("indexing writer cannot be nil")
	}

	slog.Info("start IndexRepository", "project_id", i.ProjectID, "force", i.ForceReindex)
	startTime := time.Now()

	indexingResult, err := i.index(ctx)

	if err != nil {
		if i.Initialized && i.NumFailures < MaxFailures {
			i.Initialized = false
			i.NumFailures += 1
			return i.OnRetryableFailure(i, ctx, err)
		} else {
			return nil, err
		}
	}
	slog.Info("finish IndexRepository", "project_id", i.ProjectID, "force", i.ForceReindex, "indexTime", time.Since(startTime).Seconds())

	return indexingResult, nil
}