UNPKG

long-git-cli

Version:

A CLI tool for Git tag management.

96 lines 2.77 kB
/** * Jenkins API 客户端 * 负责与 Jenkins API 交互,触发构建和获取构建状态 */ import { JenkinsBuildInfo, WaitOptions } from "../types"; /** * Jenkins 队列项响应 */ interface QueueItemResponse { id: number; executable?: { number: number; url: string; }; why?: string; blocked?: boolean; buildable?: boolean; stuck?: boolean; } /** * Jenkins API 客户端类 */ export declare class JenkinsClient { private client; private baseUrl; private username; private apiToken; /** * 构造函数 * @param baseUrl Jenkins 服务器地址 * @param username Jenkins 用户名 * @param apiToken Jenkins API Token(明文) */ constructor(baseUrl: string, username: string, apiToken: string); /** * 测试连接 * @returns 连接是否成功 */ testConnection(): Promise<boolean>; /** * 触发构建 * @param jobName Job 名称(可以包含文件夹路径,如 "folder/job-name") * @param parameters 构建参数 * @returns 队列 ID */ triggerBuild(jobName: string, parameters: Record<string, string>): Promise<string>; /** * 获取队列项信息 * @param queueId 队列 ID * @returns 队列项信息 */ getQueueItem(queueId: string): Promise<QueueItemResponse>; /** * 获取构建信息 * @param jobName Job 名称(可以包含文件夹路径,如 "folder/job-name") * @param buildNumber 构建号 * @returns 构建信息 */ getBuildInfo(jobName: string, buildNumber: number): Promise<JenkinsBuildInfo>; /** * 等待构建完成 * @param jobName Job 名称 * @param buildNumber 构建号 * @param options 等待选项 * @returns 最终的构建信息 */ waitForBuildCompletion(jobName: string, buildNumber: number, options?: WaitOptions): Promise<JenkinsBuildInfo>; /** * 等待队列项变成构建 * @param queueId 队列 ID * @param timeout 超时时间(毫秒) * @returns 构建号 */ waitForQueueToBuild(queueId: string, timeout?: number): Promise<number>; /** * 触发构建并等待完成 * @param jobName Job 名称 * @param parameters 构建参数 * @param options 等待选项 * @returns 最终的构建信息 */ triggerAndWait(jobName: string, parameters: Record<string, string>, options?: WaitOptions): Promise<JenkinsBuildInfo>; /** * 休眠指定毫秒数 * @param ms 毫秒数 */ private sleep; /** * 处理错误 * @param error 错误对象 * @param message 错误消息 */ private handleError; } export {}; //# sourceMappingURL=jenkins-client.d.ts.map