@hicho-lge/gerrit-mcp
Version:
Gerrit Code Review system을 위한 Model Context Protocol (MCP) 서버 - 23개 도구로 변경사항, 프로젝트, 계정 관리 기능 제공
104 lines (103 loc) • 3.94 kB
TypeScript
import { GerritConfig, ChangeInfo, ProjectInfo, AccountInfo, GroupInfo, QueryOptions, ReviewInput, BranchInfo, TagInfo, CommitInfo, CommentInfo, DraftInput, IncludedInInfo, ProjectAccessInfo, FileInfo, CloneInfo, ChangeFetchInfo } from './types.js';
export declare class GerritClient {
private client;
private config;
constructor(config: GerritConfig);
queryChanges(options: QueryOptions): Promise<ChangeInfo[]>;
getChange(changeId: string, options?: string[]): Promise<ChangeInfo>;
getChangeDetail(changeId: string): Promise<ChangeInfo>;
reviewChange(changeId: string, revisionId: string, review: ReviewInput): Promise<any>;
abandonChange(changeId: string, message?: string): Promise<ChangeInfo>;
listProjects(options?: {
limit?: number;
skip?: number;
prefix?: string;
regex?: string;
description?: boolean;
all?: boolean;
}): Promise<{
[key: string]: ProjectInfo;
}>;
getProject(projectName: string): Promise<ProjectInfo>;
createProject(projectName: string, input: {
parent?: string;
description?: string;
permissionsOnly?: boolean;
createEmptyCommit?: boolean;
submitType?: string;
branches?: string[];
owners?: string[];
useContributorAgreements?: boolean;
useSignedOffBy?: boolean;
useContentMerge?: boolean;
requireChangeId?: boolean;
maxObjectSizeLimit?: string;
pluginConfigValues?: {
[key: string]: {
[key: string]: string;
};
};
}): Promise<ProjectInfo>;
getAccount(accountId: string): Promise<AccountInfo>;
getSelf(): Promise<AccountInfo>;
queryAccounts(query: string, options?: {
limit?: number;
skip?: number;
suggest?: boolean;
withDetails?: boolean;
}): Promise<AccountInfo[]>;
listGroups(options?: {
limit?: number;
skip?: number;
owned?: boolean;
visibleToAll?: boolean;
user?: string;
group?: string;
regex?: string;
}): Promise<{
[key: string]: GroupInfo;
}>;
getGroup(groupId: string): Promise<GroupInfo>;
testConnection(): Promise<{
success: boolean;
error?: string;
account?: AccountInfo;
}>;
getServerVersion(): Promise<string>;
getProjectDescription(projectName: string): Promise<string>;
getProjectHead(projectName: string): Promise<string>;
listProjectBranches(projectName: string, options?: {
limit?: number;
skip?: number;
substring?: string;
regex?: string;
}): Promise<BranchInfo[]>;
listProjectTags(projectName: string, options?: {
limit?: number;
skip?: number;
substring?: string;
regex?: string;
}): Promise<TagInfo[]>;
getChangeComments(changeId: string): Promise<{
[path: string]: CommentInfo[];
}>;
replyToInlineComment(changeId: string, revisionId: string, draft: DraftInput): Promise<CommentInfo>;
getCommit(projectName: string, commitId: string): Promise<CommitInfo>;
getIncludedIn(changeId: string, revisionId: string): Promise<IncludedInInfo>;
listFiles(changeId: string, revisionId: string, options?: {
base?: string;
parent?: number;
q?: string;
}): Promise<{
[path: string]: FileInfo;
}>;
getFileContent(changeId: string, revisionId: string, filePath: string, options?: {
base?: string;
parent?: number;
}): Promise<string>;
listAccessRights(projectName: string): Promise<ProjectAccessInfo>;
getProjectCloneInfo(projectName: string): Promise<CloneInfo>;
getChangeFetchInfo(changeId: string, patchSetNumber?: number): Promise<ChangeFetchInfo>;
private enhanceError;
apiCall(method: 'GET' | 'POST' | 'PUT' | 'DELETE', endpoint: string, data?: any): Promise<any>;
}