on main help sign in
fix: always fetch providers live and not in background (#1281)
commit092b3515ce644dbb4fe09f5bea12414e13e4832a authorAndrey Nering <andreynering@users.noreply.github.com> dateTue 21 Oct 2025, 18:10 (1 year ago) parent941b8e9
2 files changed+2−34
internal/config/provider.go+1−33 internal/config/provider_test.go+1−1
internal/config/provider.go+1−33
@@ -126,7 +126,7 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) {
126126}
127127
128128func loadProviders(autoUpdateDisabled bool, client ProviderClient, path string) ([]catwalk.Provider, error) {
129− cacheIsStale, cacheExists := isCacheStale(path)
129+ _, cacheExists := isCacheStale(path)
130130
131131 catwalkGetAndSave := func() ([]catwalk.Provider, error) {
132132 providers, err := client.GetProviders()
@@ -142,25 +142,6 @@ func loadProviders(autoUpdateDisabled bool, client ProviderClient, path string)
142142 return providers, nil
143143 }
144144
145− backgroundCacheUpdate := func() {
146− go func() {
147− slog.Info("Updating providers cache in background", "path", path)
148−
149− providers, err := client.GetProviders()
150− if err != nil {
151− slog.Error("Failed to fetch providers in background from Catwalk", "error", err)
152− return
153− }
154− if len(providers) == 0 {
155− slog.Error("Empty providers list from Catwalk")
156− return
157− }
158− if err := saveProvidersInCache(path, providers); err != nil {
159− slog.Error("Failed to update providers.json in background", "error", err)
160− }
161− }()
162− }
163−
164145 switch {
165146 case autoUpdateDisabled:
166147 slog.Warn("Providers auto-update is disabled")
@@ -177,19 +158,6 @@ func loadProviders(autoUpdateDisabled bool, client ProviderClient, path string)
177158 }
178159 return providers, nil
179160
180− case cacheExists && !cacheIsStale:
181− slog.Info("Recent providers cache is available.", "path", path)
182−
183− providers, err := loadProvidersFromCache(path)
184− if err != nil {
185− return nil, err
186− }
187− if len(providers) == 0 {
188− return catwalkGetAndSave()
189− }
190− backgroundCacheUpdate()
191− return providers, nil
192−
193161 default:
194162 slog.Info("Cache is not available or is stale. Fetching providers from Catwalk.", "path", path)
195163
internal/config/provider_test.go+1−1
@@ -57,7 +57,7 @@ func TestProvider_loadProvidersWithIssues(t *testing.T) {
5757 if err != nil {
5858 t.Fatalf("Failed to write old providers to file: %v", err)
5959 }
60− providers, err := loadProviders(false, client, tmpPath)
60+ providers, err := loadProviders(true, client, tmpPath)
6161 require.NoError(t, err)
6262 require.NotNil(t, providers)
6363 require.Len(t, providers, 1)