Skip to content

repo updater store: Simplify interface

Created by: ryanslade

The repo updater specific store should no longer be an interface but a concrete type, specifically:

// Concrete type with baked-in observability
type Store struct{}

ListExternalRepoSpecs(context.Context) (map[api.ExternalRepoSpec]struct{}, error)
UpsertRepos(ctx context.Context, repos ...*types.Repo) error
UpsertSources(ctx context.Context, inserts, updates, deletes map[api.RepoID][]SourceInfo) error
SetClonedRepos(ctx context.Context, repoNames ...string) error
CountNotClonedRepos(ctx context.Context) (uint64, error)
CountUserAddedRepos(ctx context.Context) (uint64, error)
EnqueueSyncJobs(ctx context.Context, ignoreSiteAdmin bool) error

The store must be moved to cmd/repo-updater/internal/store.go

Extracted from: https://github.com/sourcegraph/sourcegraph/issues/14092