MCPcopy Create free account
hub / github.com/diillson/chatcli / envFallbackProvider

Function envFallbackProvider

auth/resolver.go:84–109  ·  view source on GitHub ↗
(provider ProviderID)

Source from the content-addressed store, hash-verified

82}
83
84func envFallbackProvider(provider ProviderID) TokenProvider {
85 switch provider {
86 case ProviderAnthropic:
87 if v := strings.TrimSpace(os.Getenv("ANTHROPIC_OAUTH_TOKEN")); v != "" {
88 return &staticTokenProvider{token: v, mode: AuthModeOAuth, provider: provider, source: "env:ANTHROPIC_OAUTH_TOKEN"}
89 }
90 if v := strings.TrimSpace(os.Getenv("ANTHROPIC_API_KEY")); v != "" {
91 return &staticTokenProvider{token: v, mode: AuthModeAPIKey, provider: provider, source: "env:ANTHROPIC_API_KEY"}
92 }
93 case ProviderOpenAI, ProviderOpenAICodex:
94 if v := strings.TrimSpace(os.Getenv("OPENAI_API_KEY")); v != "" {
95 return &staticTokenProvider{token: v, mode: AuthModeAPIKey, provider: provider, source: "env:OPENAI_API_KEY"}
96 }
97 case ProviderGitHubCopilot:
98 if v := strings.TrimSpace(os.Getenv("GITHUB_COPILOT_TOKEN")); v != "" {
99 return &staticTokenProvider{token: v, mode: AuthModeToken, provider: provider, source: "env:GITHUB_COPILOT_TOKEN"}
100 }
101 case ProviderGitHubModels:
102 for _, envKey := range []string{"GITHUB_TOKEN", "GH_TOKEN", "GITHUB_MODELS_TOKEN"} {
103 if v := strings.TrimSpace(os.Getenv(envKey)); v != "" {
104 return &staticTokenProvider{token: v, mode: AuthModeToken, provider: provider, source: "env:" + envKey}
105 }
106 }
107 }
108 return nil
109}
110
111// ResolveAuth retains the legacy contract: it returns a prefixed-string
112// representation ("oauth:...", "token:...", "apikey:...") plus metadata.

Calls

no outgoing calls