MCPcopy Index your code
hub / github.com/coder/coder / setResolvedProviderAPIKey

Function setResolvedProviderAPIKey

coderd/x/chatd/chatprovider/chatprovider.go:394–414  ·  view source on GitHub ↗

setResolvedProviderAPIKey keeps ByProvider presence aligned with resolved provider availability. An empty value means ambient credentials may satisfy the provider. An absent entry means the provider is not resolvable.

(keys *ProviderAPIKeys, provider string, apiKey string, availability ProviderAvailability)

Source from the content-addressed store, hash-verified

392// credentials may satisfy the provider. An absent entry means the
393// provider is not resolvable.
394func setResolvedProviderAPIKey(keys *ProviderAPIKeys, provider string, apiKey string, availability ProviderAvailability) {
395 normalizedProvider := NormalizeProvider(provider)
396 if normalizedProvider == "" {
397 return
398 }
399 if keys.ByProvider == nil {
400 keys.ByProvider = map[string]string{}
401 }
402
403 delete(keys.ByProvider, normalizedProvider)
404 trimmedKey := strings.TrimSpace(apiKey)
405 switch normalizedProvider {
406 case fantasyopenai.Name:
407 keys.OpenAI = trimmedKey
408 case fantasyanthropic.Name:
409 keys.Anthropic = trimmedKey
410 }
411 if trimmedKey != "" || (availability.Available && ProviderAllowsAmbientCredentials(normalizedProvider)) {
412 keys.ByProvider[normalizedProvider] = trimmedKey
413 }
414}
415
416type ModelCatalog struct{}
417

Callers 1

ResolveUserProviderKeysFunction · 0.85

Calls 2

NormalizeProviderFunction · 0.85

Tested by

no test coverage detected