UNPKG

@monsoft/mcp-github-project-manager

Version:

A Model Context Protocol GitHub Project Manager implementation

316 lines (315 loc) 13.3 kB
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"]; }>; }