long-git-cli
Version:
A CLI tool for Git tag management.
96 lines • 2.82 kB
TypeScript
/**
* 配置管理器
* 管理所有配置数据的读取、写入、验证和加密
*/
import { Storage } from "./storage";
import { DeployConfig, ProjectConfig, JenkinsConfig } from "../types";
/**
* ConfigManager 类
* 负责配置的 CRUD 操作
*/
export declare class ConfigManager {
private storage;
private configFilename;
/** 内存缓存(用于存储明文密码,仅在运行时有效) */
private credentialsCache;
constructor(storage?: Storage);
/**
* 加载配置
*/
loadConfig(): Promise<DeployConfig>;
/**
* 保存配置(不验证完整性)
* 用于部分更新配置
*/
saveConfigWithoutValidation(config: DeployConfig): Promise<void>;
/**
* 保存配置
*/
saveConfig(config: DeployConfig): Promise<void>;
/**
* 验证配置完整性
*/
validateConfig(config: DeployConfig): Promise<boolean>;
/**
* 获取项目配置
*/
getProjectConfig(projectPath: string): Promise<ProjectConfig | null>;
/**
* 更新项目配置
*/
updateProjectConfig(projectPath: string, projectConfig: ProjectConfig): Promise<void>;
/**
* 删除项目配置
*/
deleteProjectConfig(projectPath: string): Promise<void>;
/**
* 加密 Token
*/
encryptToken(token: string): Promise<string>;
/**
* 解密 Token
*/
decryptToken(encryptedToken: string): string;
/**
* 验证 Token
* @deprecated 不再需要,直接解密使用
*/
verifyToken(token: string, hash: string): Promise<boolean>;
/**
* 更新 Bitbucket 配置
* @param username Bitbucket 用户名
* @param token API Token 或 App Password(兼容旧版)
*/
updateBitbucketConfig(username: string, token: string): Promise<void>;
/**
* 获取 Bitbucket 明文密码
* 优先从缓存获取,如果没有则从配置文件解密
*/
getBitbucketPassword(): Promise<string | undefined>;
/**
* 更新 Jenkins 配置
*/
updateJenkinsConfig(jenkinsConfigs: JenkinsConfig[]): Promise<void>;
/**
* 添加 Jenkins 实例
*/
addJenkinsInstance(type: "app" | "pcalpha", url: string, username: string, apiToken: string): Promise<void>;
/**
* 获取 Jenkins 明文 token
* 优先从缓存获取,如果没有则从配置文件解密
*/
getJenkinsToken(type: "app" | "pcalpha"): Promise<string | undefined>;
/**
* 更新部署状态
*/
updateDeployStatus(projectPath: string, environment: string, status: any): Promise<void>;
/**
* 获取默认配置
*/
private getDefaultConfig;
/**
* 检查配置文件是否存在
*/
configExists(): Promise<boolean>;
}
//# sourceMappingURL=config-manager.d.ts.map