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

Method handleAuthCommand

cli/command_handler_plugins.go:24–124  ·  view source on GitHub ↗
(ctx context.Context, userInput string)

Source from the content-addressed store, hash-verified

22)
23
24func (ch *CommandHandler) handleAuthCommand(ctx context.Context, userInput string) {
25 args := strings.Fields(userInput)
26 if len(args) < 2 {
27 fmt.Println(i18n.T("auth.usage"))
28 return
29 }
30 sub := strings.ToLower(args[1])
31 switch sub {
32 case "status":
33 fmt.Println(auth.FormatAuthStatus(ch.cli.logger))
34 case "login":
35 if len(args) < 3 {
36 fmt.Println(i18n.T("auth.login.usage"))
37 return
38 }
39 prov := strings.ToLower(args[2])
40 switch prov {
41 case "anthropic", "claude", "claudeai":
42 id, err := auth.LoginAnthropicOAuth(ctx, ch.cli.logger)
43 if err != nil {
44 fmt.Println(i18n.T("auth.login.failed", err))
45 return
46 }
47 fmt.Println(i18n.T("auth.login.success", "Anthropic", id))
48 ch.cli.manager.RefreshProviders()
49 ch.autoSwitchProvider(ctx, "CLAUDEAI",
50 utils.GetEnvOrDefault("ANTHROPIC_MODEL", config.DefaultClaudeAIModel))
51 return
52 case "openai-codex", "codex":
53 id, err := auth.LoginOpenAICodexOAuth(ctx, ch.cli.logger)
54 if err != nil {
55 fmt.Println(i18n.T("auth.login.failed", err))
56 return
57 }
58 fmt.Println(i18n.T("auth.login.success", "OpenAI Codex", id))
59 ch.cli.manager.RefreshProviders()
60 ch.autoSwitchProvider(ctx, "OPENAI",
61 utils.GetEnvOrDefault("OPENAI_MODEL", config.DefaultOpenAIModel))
62 return
63 case "github-copilot", "copilot", "gh-copilot":
64 id, err := auth.LoginGitHubCopilotOAuth(ctx, ch.cli.logger)
65 if err != nil {
66 fmt.Println(i18n.T("auth.login.failed", err))
67 return
68 }
69 fmt.Println(i18n.T("auth.login.success", "GitHub Copilot", id))
70 ch.cli.manager.RefreshProviders()
71 ch.autoSwitchProvider(ctx, "COPILOT",
72 utils.GetEnvOrDefault("COPILOT_MODEL", config.DefaultCopilotModel))
73 return
74 case "github-models", "gh-models":
75 id, err := auth.LoginGitHubModelsPAT(ctx, ch.cli.logger)
76 if err != nil {
77 fmt.Println(i18n.T("auth.login.failed", err))
78 return
79 }
80 fmt.Println(i18n.T("auth.login.success", "GitHub Models", id))
81 ch.cli.manager.RefreshProviders()

Callers 1

buildRoutesMethod · 0.95

Calls 10

autoSwitchProviderMethod · 0.95
TFunction · 0.92
FormatAuthStatusFunction · 0.92
LoginAnthropicOAuthFunction · 0.92
GetEnvOrDefaultFunction · 0.92
LoginOpenAICodexOAuthFunction · 0.92
LoginGitHubCopilotOAuthFunction · 0.92
LoginGitHubModelsPATFunction · 0.92
LogoutFunction · 0.92
RefreshProvidersMethod · 0.65

Tested by

no test coverage detected