long-git-cli
Version:
A CLI tool for Git tag management.
96 lines • 2.77 kB
TypeScript
/**
* 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