From 3453b977b8d200ebb5195cc2db38d89dbc2a7323 Mon Sep 17 00:00:00 2001 From: Tommaso Sciortino Date: Wed, 18 Jun 2025 09:49:13 -0700 Subject: Support logging in with Application Default Credentials (#1157) Co-authored-by: N. Taylor Mullen --- packages/core/src/code_assist/codeAssist.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'packages/core/src/code_assist/codeAssist.ts') diff --git a/packages/core/src/code_assist/codeAssist.ts b/packages/core/src/code_assist/codeAssist.ts index 5df1502b..92b53104 100644 --- a/packages/core/src/code_assist/codeAssist.ts +++ b/packages/core/src/code_assist/codeAssist.ts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ +import { GoogleAuth, AuthClient } from 'google-auth-library'; import { ContentGenerator } from '../core/contentGenerator.js'; import { getOauthClient } from './oauth2.js'; import { setupUser } from './setup.js'; @@ -12,10 +13,17 @@ import { CodeAssistServer, HttpOptions } from './server.js'; export async function createCodeAssistContentGenerator( httpOptions: HttpOptions, ): Promise { - const oauth2Client = await getOauthClient(); - const projectId = await setupUser( - oauth2Client, - process.env.GOOGLE_CLOUD_PROJECT, - ); - return new CodeAssistServer(oauth2Client, projectId, httpOptions); + const authClient = await getAuthClient(); + const projectId = await setupUser(authClient); + return new CodeAssistServer(authClient, projectId, httpOptions); +} + +async function getAuthClient(): Promise { + try { + // Try for Application Default Credentials. + return await new GoogleAuth().getClient(); + } catch (_) { + // No Application Default Credentials so try Oauth. + return await getOauthClient(); + } } -- cgit v1.2.3