UNPKG

long-git-cli

Version:

A CLI tool for Git tag management.

138 lines 3.24 kB
/** * 自动化部署功能的类型定义 */ /** * 部署配置 */ export interface DeployConfig { version: string; projects: { [projectPath: string]: ProjectConfig; }; bitbucket: BitbucketConfig; jenkins: JenkinsConfig[]; } /** * 项目配置 */ export interface ProjectConfig { name: string; path: string; repository: { workspace: string; repoSlug: string; }; jenkinsInstance: "app" | "pcalpha"; tagFormat: string; environments: { [env: string]: EnvironmentConfig; }; } /** * 环境配置 */ export interface EnvironmentConfig { /** 环境名称: 'test-01', 'test-02', 'test-03', 'test-04', 'uat' */ name: string; /** Tag 格式: 'test-v00.00.0000', 'uat-v00.00.0000' */ tagFormat: string; /** Jenkins Job 名称 */ jenkinsJobName: string; /** Jenkins Tag 参数名 */ jenkinsTagParameter: string; /** 部署状态(可选) */ deployStatus?: { status: 'building' | 'deploying' | 'success' | 'failed'; tagName: string; step: 'pipeline' | 'jenkins' | 'completed' | 'unknown'; startTime?: string; completedTime?: string; failedTime?: string; jenkinsBuildNumber?: number; jenkinsBuildUrl?: string; error?: string; lastUpdated?: string; }; } /** * Bitbucket 配置 */ export interface BitbucketConfig { username: string; /** @deprecated 使用 apiTokenHash 代替 (2026年6月9日前仍可用) */ appPasswordHash?: string; /** 加密后的 API Token (推荐使用) */ apiTokenHash?: string; } /** * Jenkins 配置 */ export interface JenkinsConfig { type: "app" | "pcalpha"; url: string; username: string; /** 加密后的 API Token */ apiTokenHash: string; } /** * Pipeline 状态 */ export interface PipelineStatus { uuid: string; state: { name: "PENDING" | "IN_PROGRESS" | "SUCCESSFUL" | "FAILED" | "STOPPED"; result?: { name: string; }; }; created_on: string; completed_on?: string; target: { /** tag 名称 */ ref_name: string; }; } /** * 等待选项 */ export interface WaitOptions { /** 轮询间隔(毫秒),默认 15 秒 */ pollInterval?: number; /** 超时时间(毫秒),默认 30 分钟 */ timeout?: number; /** 进度回调 */ onProgress?: (status: PipelineStatus) => void; } /** * Jenkins 构建信息 */ export interface JenkinsBuildInfo { number: number; url: string; result: "SUCCESS" | "FAILURE" | "ABORTED" | "UNSTABLE" | null; building: boolean; duration: number; timestamp: number; } /** * 部署选项 */ export interface DeployOptions { tag?: string; environment?: string; project?: string; skipBuild?: boolean; } /** * 错误代码枚举 */ export declare enum ErrorCode { CONFIG_MISSING = "CONFIG_MISSING", CONFIG_INVALID = "CONFIG_INVALID", AUTH_FAILED = "AUTH_FAILED", PIPELINE_FAILED = "PIPELINE_FAILED", PIPELINE_TIMEOUT = "PIPELINE_TIMEOUT", DEPLOYMENT_FAILED = "DEPLOYMENT_FAILED", NETWORK_ERROR = "NETWORK_ERROR" } //# sourceMappingURL=types.d.ts.map