History

feat(antigravity): add FetchAntigravityProjectID function and integrate project ID retrieval

Luis Pater committed 11 months agov6.5.48

Commit 0ebabf51 parent d7564172 files · +22 −0Browse files

Unified · Split

2 files
  1. internal/api/handlers/management/auth_files.go +17 −0
  2. sdk/auth/antigravity.go +5 −0
internal/api/handlers/management/auth_files.go+17−0
@@ -1472,6 +1472,17 @@ func (h *Handler) RequestAntigravityToken(c *gin.Context) { · 1471 unmodified lines
14721472 }
14731473 }
14741474
1475+ projectID := ""
1476+ if strings.TrimSpace(tokenResp.AccessToken) != "" {
1477+ fetchedProjectID, errProject := sdkAuth.FetchAntigravityProjectID(ctx, tokenResp.AccessToken, httpClient)
1478+ if errProject != nil {
1479+ log.Warnf("antigravity: failed to fetch project ID: %v", errProject)
1480+ } else {
1481+ projectID = fetchedProjectID
1482+ log.Infof("antigravity: obtained project ID %s", projectID)
1483+ }
1484+ }
1485+
14751486 now := time.Now()
14761487 metadata := map[string]any{
14771488 "type": "antigravity",
@@ -1484,6 +1495,9 @@ func (h *Handler) RequestAntigravityToken(c *gin.Context) { · 6 unmodified lines
14841495 if email != "" {
14851496 metadata["email"] = email
14861497 }
1498+ if projectID != "" {
1499+ metadata["project_id"] = projectID
1500+ }
14871501
14881502 fileName := sanitizeAntigravityFileName(email)
14891503 label := strings.TrimSpace(email)
@@ -1507,6 +1521,9 @@ func (h *Handler) RequestAntigravityToken(c *gin.Context) { · 17 unmodified lines
15071521
15081522 delete(oauthStatus, state)
15091523 fmt.Printf("Authentication successful! Token saved to %s\n", savedPath)
1524+ if projectID != "" {
1525+ fmt.Printf("Using GCP project: %s\n", projectID)
1526+ }
15101527 fmt.Println("You can now use Antigravity services through this CLI")
15111528 }()
15121529
sdk/auth/antigravity.go+5−0
@@ -320,6 +320,11 @@ const ( · 319 unmodified lines
320320 antigravityClientMetadata = `{"ideType":"IDE_UNSPECIFIED","platform":"PLATFORM_UNSPECIFIED","pluginType":"GEMINI"}`
321321 )
322322
323+// FetchAntigravityProjectID exposes project discovery for external callers.
324+func FetchAntigravityProjectID(ctx context.Context, accessToken string, httpClient *http.Client) (string, error) {
325+ return fetchAntigravityProjectID(ctx, accessToken, httpClient)
326+}
327+
323328 // fetchAntigravityProjectID retrieves the project ID for the authenticated user via loadCodeAssist.
324329 // This uses the same approach as Gemini CLI to get the cloudaicompanionProject.
325330 func fetchAntigravityProjectID(ctx context.Context, accessToken string, httpClient *http.Client) (string, error) {