@monsoft/mcp-github-project-manager
Version:
A Model Context Protocol GitHub Project Manager implementation
316 lines (315 loc) • 13.3 kB
TypeScript
import { CreateIssueParams, UpdateIssueParams, ListIssuesParams, AddIssueCommentParams, GetIssueParams } from '../types/index.js';
/**
* Service for managing GitHub issues
*/
export declare class GitHubIssueService {
private octokit;
/**
* Create a new GitHub Issue Service
* @param token GitHub API token
*/
constructor(token: string);
/**
* Create a new issue in a GitHub repository
* @param params Issue creation parameters
* @returns The created issue
*/
createIssue(params: CreateIssueParams): Promise<{
id: number;
node_id: string;
url: string;
repository_url: string;
labels_url: string;
comments_url: string;
events_url: string;
html_url: string;
number: number;
state: string;
state_reason?: "completed" | "reopened" | "not_planned" | null;
title: string;
body?: string | null;
user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
labels: import("@octokit/openapi-types").OneOf<[string, {
id?: number;
node_id?: string;
url?: string;
name?: string;
description?: string | null;
color?: string | null;
default?: boolean;
}]>[];
assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
locked: boolean;
active_lock_reason?: string | null;
comments: number;
pull_request?: {
merged_at?: string | null;
diff_url: string | null;
html_url: string | null;
patch_url: string | null;
url: string | null;
};
closed_at: string | null;
created_at: string;
updated_at: string;
draft?: boolean;
closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
body_html?: string;
body_text?: string;
timeline_url?: string;
repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
}>;
/**
* Update an existing issue in a GitHub repository
* @param params Issue update parameters
* @returns The updated issue
*/
updateIssue(params: UpdateIssueParams): Promise<{
id: number;
node_id: string;
url: string;
repository_url: string;
labels_url: string;
comments_url: string;
events_url: string;
html_url: string;
number: number;
state: string;
state_reason?: "completed" | "reopened" | "not_planned" | null;
title: string;
body?: string | null;
user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
labels: import("@octokit/openapi-types").OneOf<[string, {
id?: number;
node_id?: string;
url?: string;
name?: string;
description?: string | null;
color?: string | null;
default?: boolean;
}]>[];
assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
locked: boolean;
active_lock_reason?: string | null;
comments: number;
pull_request?: {
merged_at?: string | null;
diff_url: string | null;
html_url: string | null;
patch_url: string | null;
url: string | null;
};
closed_at: string | null;
created_at: string;
updated_at: string;
draft?: boolean;
closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
body_html?: string;
body_text?: string;
timeline_url?: string;
repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
}>;
/**
* List issues in a GitHub repository
* @param params Issue listing parameters
* @returns List of issues
*/
listIssues(params: ListIssuesParams): Promise<{
id: number;
node_id: string;
url: string;
repository_url: string;
labels_url: string;
comments_url: string;
events_url: string;
html_url: string;
number: number;
state: string;
state_reason?: "completed" | "reopened" | "not_planned" | null;
title: string;
body?: string | null;
user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
labels: import("@octokit/openapi-types").OneOf<[string, {
id?: number;
node_id?: string;
url?: string;
name?: string;
description?: string | null;
color?: string | null;
default?: boolean;
}]>[];
assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
locked: boolean;
active_lock_reason?: string | null;
comments: number;
pull_request?: {
merged_at?: string | null;
diff_url: string | null;
html_url: string | null;
patch_url: string | null;
url: string | null;
};
closed_at: string | null;
created_at: string;
updated_at: string;
draft?: boolean;
closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
body_html?: string;
body_text?: string;
timeline_url?: string;
repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
}[]>;
/**
* Get details of a specific issue
* @param params Get issue parameters
* @returns Issue details
*/
getIssue(params: GetIssueParams): Promise<{
id: number;
node_id: string;
url: string;
repository_url: string;
labels_url: string;
comments_url: string;
events_url: string;
html_url: string;
number: number;
state: string;
state_reason?: "completed" | "reopened" | "not_planned" | null;
title: string;
body?: string | null;
user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
labels: import("@octokit/openapi-types").OneOf<[string, {
id?: number;
node_id?: string;
url?: string;
name?: string;
description?: string | null;
color?: string | null;
default?: boolean;
}]>[];
assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
locked: boolean;
active_lock_reason?: string | null;
comments: number;
pull_request?: {
merged_at?: string | null;
diff_url: string | null;
html_url: string | null;
patch_url: string | null;
url: string | null;
};
closed_at: string | null;
created_at: string;
updated_at: string;
draft?: boolean;
closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
body_html?: string;
body_text?: string;
timeline_url?: string;
repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
}>;
/**
* Add a comment to an issue
* @param params Issue comment parameters
* @returns The created comment
*/
addIssueComment(params: AddIssueCommentParams): Promise<{
id: number;
node_id: string;
url: string;
body?: string;
body_text?: string;
body_html?: string;
html_url: string;
user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
created_at: string;
updated_at: string;
issue_url: string;
author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
}>;
/**
* Close an issue
* @param owner Repository owner
* @param repo Repository name
* @param issue_number Issue number
* @returns The updated issue
*/
closeIssue(owner: string, repo: string, issue_number: number): Promise<{
id: number;
node_id: string;
url: string;
repository_url: string;
labels_url: string;
comments_url: string;
events_url: string;
html_url: string;
number: number;
state: string;
state_reason?: "completed" | "reopened" | "not_planned" | null;
title: string;
body?: string | null;
user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
labels: import("@octokit/openapi-types").OneOf<[string, {
id?: number;
node_id?: string;
url?: string;
name?: string;
description?: string | null;
color?: string | null;
default?: boolean;
}]>[];
assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
locked: boolean;
active_lock_reason?: string | null;
comments: number;
pull_request?: {
merged_at?: string | null;
diff_url: string | null;
html_url: string | null;
patch_url: string | null;
url: string | null;
};
closed_at: string | null;
created_at: string;
updated_at: string;
draft?: boolean;
closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
body_html?: string;
body_text?: string;
timeline_url?: string;
repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
}>;
}