mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-21 09:17:53 +00:00
Support logging in with Application Default Credentials (#1157)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
This commit is contained in:
committed by
GitHub
parent
5b2cea8eda
commit
3453b977b8
@@ -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<ContentGenerator> {
|
||||
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<AuthClient> {
|
||||
try {
|
||||
// Try for Application Default Credentials.
|
||||
return await new GoogleAuth().getClient();
|
||||
} catch (_) {
|
||||
// No Application Default Credentials so try Oauth.
|
||||
return await getOauthClient();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user