mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
Code to support Oauth login (#881)
This commit is contained in:
committed by
GitHub
parent
f11414a424
commit
5c9e526f0e
56
packages/core/src/code_assist/setup.ts
Normal file
56
packages/core/src/code_assist/setup.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2025 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import { OAuth2Client } from 'google-auth-library';
|
||||
|
||||
import { ClientMetadata } from './metadata.js';
|
||||
import { doLoadCodeAssist, LoadCodeAssistResponse } from './load.js';
|
||||
import { doGCALogin } from './login.js';
|
||||
import {
|
||||
doOnboardUser,
|
||||
LongrunningOperationResponse,
|
||||
OnboardUserRequest,
|
||||
} from './onboard.js';
|
||||
|
||||
export async function doSetup(): Promise<string> {
|
||||
const oauth2Client: OAuth2Client = await doGCALogin();
|
||||
const clientMetadata: ClientMetadata = {
|
||||
ideType: 'IDE_UNSPECIFIED',
|
||||
ideVersion: null,
|
||||
pluginVersion: null,
|
||||
platform: 'PLATFORM_UNSPECIFIED',
|
||||
updateChannel: null,
|
||||
duetProject: 'aipp-internal-testing',
|
||||
pluginType: 'GEMINI',
|
||||
ideName: null,
|
||||
};
|
||||
|
||||
// Call LoadCodeAssist.
|
||||
const loadCodeAssistRes: LoadCodeAssistResponse = await doLoadCodeAssist(
|
||||
{
|
||||
cloudaicompanionProject: 'aipp-internal-testing',
|
||||
metadata: clientMetadata,
|
||||
},
|
||||
oauth2Client,
|
||||
);
|
||||
|
||||
// Call OnboardUser until long running operation is complete.
|
||||
const onboardUserReq: OnboardUserRequest = {
|
||||
tierId: 'legacy-tier',
|
||||
cloudaicompanionProject: loadCodeAssistRes.cloudaicompanionProject || '',
|
||||
metadata: clientMetadata,
|
||||
};
|
||||
let lroRes: LongrunningOperationResponse = await doOnboardUser(
|
||||
onboardUserReq,
|
||||
oauth2Client,
|
||||
);
|
||||
while (!lroRes.done) {
|
||||
await new Promise((f) => setTimeout(f, 5000));
|
||||
lroRes = await doOnboardUser(onboardUserReq, oauth2Client);
|
||||
}
|
||||
|
||||
return lroRes.response?.cloudaicompanionProject?.id || '';
|
||||
}
|
||||
Reference in New Issue
Block a user