Update keychain storage name to be more user-friendly (#12644)

This commit is contained in:
christine betts
2025-11-06 12:55:20 -08:00
committed by GitHub
parent 36feb73bfd
commit c13ec85d7d
2 changed files with 14 additions and 2 deletions

View File

@@ -187,6 +187,9 @@ precedence.
### Settings
_Note: This is an experimental feature. We do not yet recommend extension
authors introduce settings as part of their core flows._
Extensions can define settings that the user will be prompted to provide upon
installation. This is useful for things like API keys, URLs, or other
configuration that the extension needs to function.

View File

@@ -22,6 +22,11 @@ export interface ExtensionSetting {
sensitive?: boolean;
}
const getKeychainStorageName = (
extensionName: string,
extensionId: string,
): string => `Gemini CLI Extensions ${extensionName} ${extensionId}`;
export async function maybePromptForSettings(
extensionConfig: ExtensionConfig,
extensionId: string,
@@ -38,7 +43,9 @@ export async function maybePromptForSettings(
return;
}
const envFilePath = new ExtensionStorage(extensionName).getEnvFilePath();
const keychain = new KeychainTokenStorage(extensionId);
const keychain = new KeychainTokenStorage(
getKeychainStorageName(extensionName, extensionId),
);
if (!settings || settings.length === 0) {
await clearSettings(envFilePath, keychain);
@@ -107,7 +114,9 @@ export async function getEnvContents(
return Promise.resolve({});
}
const extensionStorage = new ExtensionStorage(extensionConfig.name);
const keychain = new KeychainTokenStorage(extensionId);
const keychain = new KeychainTokenStorage(
getKeychainStorageName(extensionConfig.name, extensionId),
);
let customEnv: Record<string, string> = {};
if (fsSync.existsSync(extensionStorage.getEnvFilePath())) {
const envFile = fsSync.readFileSync(