fix: Use Email for Clearcut Logging and Refactor User Info Fetching (#3620)

This commit is contained in:
Gaurav
2025-07-09 21:17:40 -07:00
committed by GitHub
parent da50a1eefb
commit b7f8e1360f
5 changed files with 99 additions and 108 deletions

View File

@@ -8,8 +8,11 @@ import * as os from 'os';
import * as fs from 'fs';
import * as path from 'path';
import { randomUUID } from 'crypto';
import { createRequire } from 'module';
import { GEMINI_DIR } from './paths.js';
const require = createRequire(import.meta.url);
const homeDir = os.homedir() ?? '';
const geminiDir = path.join(homeDir, GEMINI_DIR);
const installationIdFile = path.join(geminiDir, 'installation_id');
@@ -58,24 +61,23 @@ export function getInstallationId(): string {
}
/**
* Retrieves the obfuscated Google Account ID for the currently authenticated user.
* When OAuth is available, returns the user's cached Google Account ID. Otherwise, returns the installation ID.
* @returns A string ID for the user (Google Account ID if available, otherwise installation ID).
* Retrieves the email for the currently authenticated user.
* When OAuth is available, returns the user's cached email. Otherwise, returns an empty string.
* @returns A string email for the user (Google Account email if available, otherwise empty string).
*/
export async function getGoogleAccountId(): Promise<string> {
// Try to get cached Google Account ID first
export function getGoogleAccountEmail(): string {
// Try to get cached Google Account email first
try {
// Dynamic import to avoid circular dependencies
const { getCachedGoogleAccountId } = await import(
'../code_assist/oauth2.js'
);
const googleAccountId = getCachedGoogleAccountId();
if (googleAccountId) {
return googleAccountId;
// Dynamically import to avoid circular dependencies
// eslint-disable-next-line no-restricted-syntax
const { getCachedGoogleAccountEmail } = require('../code_assist/oauth2.js');
const googleAccountEmail = getCachedGoogleAccountEmail();
if (googleAccountEmail) {
return googleAccountEmail;
}
} catch (error) {
// If there's any error accessing Google Account ID, just return empty string
console.debug('Could not get cached Google Account ID:', error);
// If there's any error accessing Google Account email, just return empty string
console.debug('Could not get cached Google Account email:', error);
}
return '';