Skip to content

Commit 05d201e

Browse files
fix(gemini): gate callback prompt on project_id
1 parent cd0c94f commit 05d201e

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

internal/cmd/login.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,19 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) {
5858
promptFn := options.Prompt
5959
if promptFn == nil {
6060
promptFn = defaultProjectPrompt()
61-
options.Prompt = promptFn
61+
}
62+
63+
trimmedProjectID := strings.TrimSpace(projectID)
64+
callbackPrompt := promptFn
65+
if trimmedProjectID == "" {
66+
callbackPrompt = nil
6267
}
6368

6469
loginOpts := &sdkAuth.LoginOptions{
6570
NoBrowser: options.NoBrowser,
66-
ProjectID: strings.TrimSpace(projectID),
71+
ProjectID: trimmedProjectID,
6772
Metadata: map[string]string{},
68-
Prompt: promptFn,
73+
Prompt: callbackPrompt,
6974
}
7075

7176
authenticator := sdkAuth.NewGeminiAuthenticator()
@@ -84,7 +89,7 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) {
8489
geminiAuth := gemini.NewGeminiAuth()
8590
httpClient, errClient := geminiAuth.GetAuthenticatedClient(ctx, storage, cfg, &gemini.WebLoginOptions{
8691
NoBrowser: options.NoBrowser,
87-
Prompt: promptFn,
92+
Prompt: callbackPrompt,
8893
})
8994
if errClient != nil {
9095
log.Errorf("Gemini authentication failed: %v", errClient)
@@ -99,7 +104,7 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) {
99104
return
100105
}
101106

102-
selectedProjectID := promptForProjectSelection(projects, strings.TrimSpace(projectID), promptFn)
107+
selectedProjectID := promptForProjectSelection(projects, trimmedProjectID, promptFn)
103108
projectSelections, errSelection := resolveProjectSelections(selectedProjectID, projects)
104109
if errSelection != nil {
105110
log.Errorf("Invalid project selection: %v", errSelection)

0 commit comments

Comments
 (0)