UNPKG

@candriajs/git-neko-kit

Version:

Github, Gitee, GitCode API封装库

1 lines 34.3 kB
const e=require(`./root-s6IKP4Xz.cjs`),t=require(`./client-Bmkb1ges.cjs`),n=e.__toESM(require(`radash`));var r=class extends t.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url}async get_issue_info(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.MissingIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a}=e,o=await this.get(`/repos/${r}/${i}/issues/${Number(a)}`);switch(o.statusCode){case 404:throw Error(t.IssueNotFoundMsg);case 301:throw Error(t.IssueMovedMsg)}if(o.data){let[e,r,i,a,s,c,l]=await Promise.all([this.format?t.format_date(o.data.created_at):o.data.created_at,this.format?t.format_date(o.data.updated_at):o.data.updated_at,(0,n.isEmpty)(o.data.closed_at)?null:this.format?await t.format_date(o.data.closed_at):o.data.closed_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.created_at):o.data.milestone.created_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.updated_at):o.data.milestone.updated_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.closed_at):o.data.milestone.closed_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.due_on):o.data.milestone.due_on]),u={id:o.data.id,html_url:o.data.html_url,number:o.data.number,state:o.data.state,title:o.data.title,body:o.data.body,user:{id:o.data.user.id,login:o.data.user.login,name:(0,n.isEmpty)(o.data.user.name)?null:o.data.user.name,email:(0,n.isEmpty)(o.data.user.email)?null:o.data.user.email,html_url:o.data.user.html_url,avatar_url:o.data.user.avatar_url},labels:(0,n.isEmpty)(o.data.labels)?null:o.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(o.data.assignee)?null:{id:o.data.assignee.id,login:o.data.assignee.login,name:(0,n.isEmpty)(o.data.assignee.name)?null:o.data.assignee.name,email:(0,n.isEmpty)(o.data.assignee.email)?null:o.data.assignee.email,html_url:o.data.assignee.html_url,avatar_url:o.data.assignee.avatar_url},assignees:(0,n.isEmpty)(o.data.assignees)?null:o.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(o.data.milestone)?null:{id:o.data.milestone.id,url:o.data.milestone.url,number:o.data.milestone.number,state:o.data.milestone.state,title:o.data.milestone.title,description:o.data.milestone.description,open_issues:o.data.milestone.open_issues,closed_issues:o.data.milestone.closed_issues,created_at:a,updated_at:s,closed_at:c,due_on:l},created_at:e,updated_at:r,closed_at:i};o.data=u}return o}catch(e){throw Error(`[GitHub] 获取议题详情失败: ${e.message}`)}}async get_issues_list(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,...a}=e,o={};a.milestone&&(o.milestone=a.milestone.toString()),a.state&&(o.state=a.state),a.assignee&&(o.assignee=a.assignee),a.creator&&(o.creator=a.creator),a.labels&&(o.labels=a.labels),a.sort&&(o.sort=a.sort),a.direction&&(o.direction=a.direction),a.since&&(o.since=a.since),a.per_page&&(o.per_page=a.per_page.toString()),a.page&&(o.page=a.page.toString());let s=`/repos/${r}/${i}/issues`,c=await this.get(s,o);if(c.statusCode===401)throw Error(t.PermissionDeniedMsg);if(c.data){let e=await Promise.all(c.data.map(async e=>({id:e.id,html_url:e.html_url,number:e.number,state:e.state,title:e.title,body:e.body,user:{id:e.user.id,login:e.user.login,name:(0,n.isEmpty)(e.user.name)?null:e.user.name,email:(0,n.isEmpty)(e.user.email)?null:e.user.email,html_url:e.user.html_url,avatar_url:e.user.avatar_url},labels:(0,n.isEmpty)(e.labels)?null:e.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(e.assignee)?null:{id:e.assignee.id,login:e.assignee.login,name:(0,n.isEmpty)(e.assignee.name)?null:e.assignee.name,email:(0,n.isEmpty)(e.assignee.email)?null:e.assignee.email,html_url:e.assignee.html_url,avatar_url:e.assignee.avatar_url},assignees:(0,n.isEmpty)(e.assignees)?null:e.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(e.milestone)?null:{id:e.milestone.id,url:e.milestone.url,number:e.milestone.number,state:e.milestone.state,title:e.milestone.title,description:e.milestone.description,open_issues:e.milestone.open_issues,closed_issues:e.milestone.closed_issues,created_at:this.format?await t.format_date(e.milestone.created_at):e.milestone.created_at,updated_at:this.format?await t.format_date(e.milestone.updated_at):e.milestone.updated_at,closed_at:e.milestone.closed_at?this.format?await t.format_date(e.milestone.closed_at):e.milestone.closed_at:null,due_on:e.milestone.due_on?this.format?await t.format_date(e.milestone.due_on):e.milestone.due_on:null},created_at:this.format?await t.format_date(c.data.created_at):c.data.created_at,updated_at:this.format?await t.format_date(c.data.updated_at):c.data.updated_at,closed_at:c.data.closed_at?this.format?await t.format_date(c.data.closed_at):c.data.closed_at:null})));c.data=e}return c}catch(e){throw Error(`[GitHub] 获取仓库的议题列表失败: ${e.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.title)throw Error(t.MissingIssueTitleMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,...a}=e,o={...a,...a.labels&&{labels:Array.isArray(a.labels)?a.labels:[a.labels]},...a.assignees&&{assignees:Array.isArray(a.assignees)?a.assignees:[a.assignees]}},s=await this.post(`/repos/${r}/${i}/issues`,o);switch(s.statusCode){case 403:throw Error(t.PermissionDeniedMsg);case 301:throw Error(t.RepoNotFoundMsg)}if(s.data&&s.data){let[e,r,i,a,o,c,l]=await Promise.all([this.format?t.format_date(s.data.created_at):s.data.created_at,this.format?t.format_date(s.data.updated_at):s.data.updated_at,(0,n.isEmpty)(s.data.closed_at)?null:this.format?await t.format_date(s.data.closed_at):s.data.closed_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.created_at):s.data.milestone.created_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.updated_at):s.data.milestone.updated_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.closed_at):s.data.milestone.closed_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.due_on):s.data.milestone.due_on]),u={id:s.data.id,html_url:s.data.html_url,number:s.data.number,state:s.data.state,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:(0,n.isEmpty)(s.data.user.name)?null:s.data.user.name,email:(0,n.isEmpty)(s.data.user.email)?null:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url},labels:(0,n.isEmpty)(s.data.labels)?null:s.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(s.data.assignee)?null:{id:s.data.assignee.id,login:s.data.assignee.login,name:(0,n.isEmpty)(s.data.assignee.name)?null:s.data.assignee.name,email:(0,n.isEmpty)(s.data.assignee.email)?null:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url},assignees:(0,n.isEmpty)(s.data.assignees)?null:s.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(s.data.milestone)?null:{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:a,updated_at:o,closed_at:c,due_on:l},created_at:e,updated_at:r,closed_at:i};s.data=u}return s}catch(e){throw Error(`[GitHub]创建议题失败: ${e.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.MissingIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a,...o}=e,s={...o,...o.labels&&{labels:Array.isArray(o.labels)?o.labels:[o.labels]},...o.assignees&&{assignees:Array.isArray(o.assignees)?o.assignees:[o.assignees]}},c=await this.patch(`/repos/${r}/${i}/issues/${Number(a)}`,null,s);switch(c.statusCode){case 404:throw Error(t.IssueNotFoundMsg);case 403:throw Error(t.PermissionDeniedMsg);case 301:throw Error(t.RepoNotFoundMsg)}if(c.data&&c.data){let[e,r,i,a,o,s,l]=await Promise.all([this.format?t.format_date(c.data.created_at):c.data.created_at,this.format?t.format_date(c.data.updated_at):c.data.updated_at,(0,n.isEmpty)(c.data.closed_at)?null:this.format?await t.format_date(c.data.closed_at):c.data.closed_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.created_at):c.data.milestone.created_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.updated_at):c.data.milestone.updated_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.closed_at):c.data.milestone.closed_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.due_on):c.data.milestone.due_on]),u={id:c.data.id,html_url:c.data.html_url,number:c.data.number,state:c.data.state,title:c.data.title,body:c.data.body,user:{id:c.data.user.id,login:c.data.user.login,name:(0,n.isEmpty)(c.data.user.name)?null:c.data.user.name,email:(0,n.isEmpty)(c.data.user.email)?null:c.data.user.email,html_url:c.data.user.html_url,avatar_url:c.data.user.avatar_url},labels:(0,n.isEmpty)(c.data.labels)?null:c.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(c.data.assignee)?null:{id:c.data.assignee.id,login:c.data.assignee.login,name:(0,n.isEmpty)(c.data.assignee.name)?null:c.data.assignee.name,email:(0,n.isEmpty)(c.data.assignee.email)?null:c.data.assignee,html_url:c.data.assignee.html_url,avatar_url:c.data.assignee.avatar_url},assignees:(0,n.isEmpty)(c.data.assignees)?null:c.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(c.data.milestone)?null:{id:c.data.milestone.id,url:c.data.milestone.url,number:c.data.milestone.number,state:c.data.milestone.state,title:c.data.milestone.title,description:c.data.milestone.description,open_issues:c.data.milestone.open_issues,closed_issues:c.data.milestone.closed_issues,created_at:a,updated_at:o,closed_at:s,due_on:l},created_at:e,updated_at:r,closed_at:i};c.data=u}return c}catch(e){throw Error(`[GitHub] 更新议题失败: ${e.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.MissingIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a}=e,o=await this.patch(`/repos/${r}/${i}/issues/${a}`,null,{state:`open`});switch(o.statusCode){case 404:throw Error(t.IssueNotFoundMsg);case 403:throw Error(t.PermissionDeniedMsg);case 301:throw Error(t.RepoNotFoundMsg)}if(o.data&&o.data){let[e,r,i,a,s,c,l]=await Promise.all([this.format?t.format_date(o.data.created_at):o.data.created_at,this.format?t.format_date(o.data.updated_at):o.data.updated_at,(0,n.isEmpty)(o.data.closed_at)?null:this.format?await t.format_date(o.data.closed_at):o.data.closed_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.created_at):o.data.milestone.created_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.updated_at):o.data.milestone.updated_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.closed_at):o.data.milestone.closed_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.due_on):o.data.milestone.due_on]),u={id:o.data.id,html_url:o.data.html_url,number:o.data.number,state:o.data.state,title:o.data.title,body:o.data.body,user:{id:o.data.user.id,login:o.data.user.login,name:(0,n.isEmpty)(o.data.user.name)?null:o.data.user.name,email:(0,n.isEmpty)(o.data.user.email)?null:o.data.user.email,html_url:o.data.user.html_url,avatar_url:o.data.user.avatar_url},labels:(0,n.isEmpty)(o.data.labels)?null:o.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(o.data.assignee)?null:{id:o.data.assignee.id,login:o.data.assignee.login,name:(0,n.isEmpty)(o.data.assignee.name)?null:o.data.assignee.name,email:(0,n.isEmpty)(o.data.assignee.email)?null:o.data.assignee.email,html_url:o.data.assignee.html_url,avatar_url:o.data.assignee.avatar_url},assignees:(0,n.isEmpty)(o.data.assignees)?null:o.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(o.data.milestone)?null:{id:o.data.milestone.id,url:o.data.milestone.url,number:o.data.milestone.number,state:o.data.milestone.state,title:o.data.milestone.title,description:o.data.milestone.description,open_issues:o.data.milestone.open_issues,closed_issues:o.data.milestone.closed_issues,created_at:a,updated_at:s,closed_at:c,due_on:l},created_at:e,updated_at:r,closed_at:i};o.data=u}return o}catch(e){throw Error(`[GitHub] 打开议题失败: ${e.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.MissingIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a}=e,o=await this.patch(`/repos/${r}/${i}/issues/${a}`,null,{state:`closed`});switch(o.statusCode){case 404:throw Error(t.IssueNotFoundMsg);case 403:throw Error(t.PermissionDeniedMsg);case 301:throw Error(t.RepoNotFoundMsg)}if(o.data){let[e,r,i,a,s,c,l]=await Promise.all([this.format?t.format_date(o.data.created_at):o.data.created_at,this.format?t.format_date(o.data.updated_at):o.data.updated_at,(0,n.isEmpty)(o.data.closed_at)?null:this.format?await t.format_date(o.data.closed_at):o.data.closed_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.created_at):o.data.milestone.created_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.updated_at):o.data.milestone.updated_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.closed_at):o.data.milestone.closed_at,(0,n.isEmpty)(o.data.milestone)?null:this.format?await t.format_date(o.data.milestone.due_on):o.data.milestone.due_on]),u={id:o.data.id,html_url:o.data.html_url,number:o.data.number,state:o.data.state,title:o.data.title,body:o.data.body,user:{id:o.data.user.id,login:o.data.user.login,name:(0,n.isEmpty)(o.data.user.name)?null:o.data.user.name,email:(0,n.isEmpty)(o.data.user.email)?null:o.data.user.email,html_url:o.data.user.html_url,avatar_url:o.data.user.avatar_url},labels:(0,n.isEmpty)(o.data.labels)?null:o.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(o.data.assignee)?null:{id:o.data.assignee.id,login:o.data.assignee.login,name:(0,n.isEmpty)(o.data.assignee.name)?null:o.data.assignee.name,email:(0,n.isEmpty)(o.data.assignee.email)?null:o.data.assignee.email,html_url:o.data.assignee.html_url,avatar_url:o.data.assignee.avatar_url},assignees:(0,n.isEmpty)(o.data.assignees)?null:o.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(o.data.milestone)?null:{id:o.data.milestone.id,url:o.data.milestone.url,number:o.data.milestone.number,state:o.data.milestone.state,title:o.data.milestone.title,description:o.data.milestone.description,open_issues:o.data.milestone.open_issues,closed_issues:o.data.milestone.closed_issues,created_at:a,updated_at:s,closed_at:c,due_on:l},created_at:e,updated_at:r,closed_at:i};o.data=u}return o}catch(e){throw Error(`[GitHub] 关闭议题失败: ${e.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.MissingIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:n,repo:r,issue_number:i,lock_reason:a}=e,o=await this.put(`/repos/${n}/${r}/issues/${Number(i)}`,{locked:!0,lock_reason:a});switch(o.statusCode){case 404:throw Error(t.IssueNotFoundMsg);case 403:throw Error(t.PermissionDeniedMsg);case 301:throw Error(t.RepoNotFoundMsg)}let s;return s=o.statusCode===204?{success:!0,message:t.IssueUnlockSuccessMsg}:{success:!1,message:t.FailedtoLockIssueMsg},o.data=s,o}catch(e){throw Error(`[GitHub] 锁定议题失败: ${e.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.MissingIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:n,repo:r,issue_number:i}=e,a=await this.delete(`/repos/${n}/${r}/issues/${i}/lock`);switch(a.statusCode){case 404:throw Error(t.IssueNotFoundMsg);case 403:throw Error(t.PermissionDeniedMsg);case 301:throw Error(t.RepoNotFoundMsg)}let o;return o=a.statusCode===204?{success:!0,message:t.IssueUnlockSuccessMsg}:{success:!1,message:t.FailedtoUnlockIssueMsg},a.data=o,a}catch(e){throw Error(`[GitHub] 解锁议题失败: ${e.message}`)}}async get_repo_comments_list(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,...a}=e,o={};a.sort&&(o.sort=a.sort),a.direction&&a.direction&&(o.direction=a.direction),a.since&&(o.since=a.since),a.per_page&&(o.per_page=a.per_page.toString()),a.page&&(o.page=a.page.toString());let s=`/repos/${r}/${i}/issues/comments/`,c=await this.get(s,o);if(c.statusCode===404)throw Error(t.IssueCommentNotFoundMsg);if(c.data){let e=await Promise.all(c.data.map(async e=>({id:e.id,html_url:e.html_url,body:e.body,user:{id:e.user.id,login:e.user.login,name:(0,n.isEmpty)(e.user.name)?null:e.user.name,email:(0,n.isEmpty)(e.user.email)?null:e.user.email,html_url:e.user.html_url,avatar_url:e.user.avatar_url},created_at:this.format?await t.format_date(e.created_at):e.created_at,updated_at:this.format?await t.format_date(e.updated_at):e.updated_at})));c.data=e}return c}catch(e){throw Error(`[GitHub] 获取仓库评论列表失败: ${e.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.MissingIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a,...o}=e,s={};o.since&&(s.since=o.since),o.per_page&&(s.per_page=o.per_page.toString()),o.page&&(s.page=o.page.toString());let c=`/repos/${r}/${i}/issues/${Number(a)}/comments`,l=await this.get(c,s);if(l.statusCode===404)throw Error(t.IssueCommentNotFoundMsg);if(l.data){let e=await Promise.all(l.data.map(async e=>({id:e.id,html_url:e.html_url,body:e.body,user:{id:e.user.id,login:e.user.login,name:(0,n.isEmpty)(e.user.name)?null:e.user.name,email:(0,n.isEmpty)(e.user.email)?null:e.user.email,html_url:e.user.html_url,avatar_url:e.user.avatar_url},created_at:this.format?await t.format_date(e.created_at):e.created_at,updated_at:this.format?await t.format_date(e.updated_at):e.updated_at})));l.data=e}return l}catch(e){throw Error(`[GitHub] 获取议题评论列表失败: ${e.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.comment_id)throw Error(t.MissingIssueCommentNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,comment_id:a}=e,o=await this.get(`/repos/${r}/${i}/issues/comments/${Number(a)}`);if(o.statusCode===404)throw Error(t.IssueCommentNotFoundMsg);if(o.data){let[e,r]=await Promise.all([this.format?await t.format_date(o.data.created_at):o.data.created_at,this.format?await t.format_date(o.data.updated_at):o.data.updated_at]),i={id:o.data.id,html_url:o.data.html_url,body:o.data.body,user:{id:o.data.user.id,login:o.data.user.login,name:(0,n.isEmpty)(o.data.user.name)?null:o.data.user.name,email:(0,n.isEmpty)(o.data.user.email)?null:o.data.user.email,html_url:o.data.user.html_url,avatar_url:o.data.user.avatar_url},created_at:e,updated_at:r};o.data=i}return o}catch(e){throw Error(`[GitHub] 获取议题评论信息失败: ${e.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.IssueCommentNotFoundMsg);if(!e.body)throw Error(t.MissingIssueCommentBodyMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a,body:o}=e,s=await this.post(`/repos/${r}/${i}/issues/${Number(a)}/comments`,{body:o});if(s.statusCode===404)throw Error(t.IssueCommentNotFoundMsg);if(s.data){let[e,o]=await Promise.all([this.format?await t.format_date(s.data.created_at):s.data.created_at,this.format?await t.format_date(s.data.updated_at):s.data.updated_at]),c={id:s.data.id,html_url:`${this.base_url}/${r}/${i}/issues/${a}#${s.data.id}`,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:(0,n.isEmpty)(s.data.user.name)?null:s.data.user.name,email:(0,n.isEmpty)(s.data.user.email)?null:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url},created_at:e,updated_at:o};s.data=c}return s}catch(e){throw Error(`[GitHub] 创建议题评论失败: ${e.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.comment_id)throw Error(t.MissingIssueCommentNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,comment_id:a,...o}=e,s=await this.patch(`/repos/${r}/${i}/issues/comments/${Number(a)}`,null,o);if(s.statusCode===404)throw Error(t.IssueCommentNotFoundMsg);if(s.data){let[e,r]=await Promise.all([this.format?await t.format_date(s.data.created_at):s.data.created_at,this.format?await t.format_date(s.data.updated_at):s.data.updated_at]),i={id:s.data.id,html_url:s.data.html_url,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:(0,n.isEmpty)(s.data.user.name)?null:s.data.user.name,email:(0,n.isEmpty)(s.data.user.email)?null:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url},created_at:e,updated_at:r};s.data=i}return s}catch(e){throw Error(`[GitHub] 更新议题评论信息失败: ${e.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.comment_id)throw Error(t.MissingIssueCommentNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:n,repo:r,comment_id:i}=e,a=await this.delete(`/repos/${n}/${r}/issues/comments/${Number(i)}`);if(a.statusCode===404)throw Error(t.IssueCommentNotFoundMsg);let o;return o=a.statusCode===204?{success:!0,message:t.IssueCommentRemoveSuccessMsg}:{success:!1,message:t.FailedtoRemoveIssueMsg},a.data=o,a}catch(e){throw Error(`[GitHub] 删除议题评论信息失败: ${e.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.IssueCommentNotFoundMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a,...o}=e,s={};o.per_page&&(s.per_page=o.per_page.toString()),o.page&&(s.page=o.page.toString());let c=`/repos/${r}/${i}/issues/${Number(a)}/sub_issues`,l=await this.get(c,s);if(l.statusCode===404)throw Error(t.IssueNotFoundMsg);if(l.data){let e=await Promise.all(l.data.map(async e=>({id:e.id,html_url:e.html_url,number:e.number,state:e.state,title:e.title,body:e.body,user:{id:e.user.id,login:e.user.login,name:(0,n.isEmpty)(l.data.user.name)?null:l.data.user.name,email:(0,n.isEmpty)(l.data.user.email)?null:l.data.user.email,html_url:e.user.html_url,avatar_url:e.user.avatar_url},labels:(0,n.isEmpty)(e.labels)?null:e.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(e.assignee)?null:{id:e.assignee.id,login:e.assignee.login,name:(0,n.isEmpty)(l.data.assignee.name)?null:l.data.assignee.name,email:(0,n.isEmpty)(l.data.assignee.email)?null:l.data.assignee.email,html_url:e.assignee.html_url,avatar_url:e.assignee.avatar_url},assignees:(0,n.isEmpty)(e.assignees)?null:e.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(e.milestone)?null:{id:e.milestone.id,url:e.milestone.url,number:e.milestone.number,state:e.milestone.state,title:e.milestone.title,description:e.milestone.description,open_issues:e.milestone.open_issues,closed_issues:e.milestone.closed_issues,created_at:this.format?await t.format_date(e.milestone.created_at):e.milestone.created_at,updated_at:this.format?await t.format_date(e.milestone.updated_at):e.milestone.updated_at,closed_at:e.milestone.closed_at?this.format?await t.format_date(e.milestone.closed_at):e.milestone.closed_at:null,due_on:e.milestone.due_on?this.format?await t.format_date(e.milestone.due_on):e.milestone.due_on:null},created_at:this.format?await t.format_date(e.created_at):e.created_at,updated_at:this.format?await t.format_date(e.updated_at):e.updated_at,closed_at:(0,n.isEmpty)(e.closed_at)?null:this.format?await t.format_date(e.closed_at):e.closed_at})));l.data=e}return l}catch(e){throw Error(`[GitHub] 获取子议题列表失败: ${e.message}`)}}async create_sub_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.IssueCommentNotFoundMsg);if(!e.sub_issue_id)throw Error(t.MissingSubIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a,sub_issue_id:o,replace_parent:s}=e,c=await this.post(`/repos/${r}/${i}/issues/${a}/sub_issues`,{sub_issue_id:o,replace_parent:s});if(c.statusCode===404)throw Error(t.IssueNotFoundMsg);if(c.data){let[e,r,i,a,o,s,l]=await Promise.all([this.format?t.format_date(c.data.created_at):c.data.created_at,this.format?t.format_date(c.data.updated_at):c.data.updated_at,(0,n.isEmpty)(c.data.closed_at)?null:this.format?await t.format_date(c.data.closed_at):c.data.closed_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.created_at):c.data.milestone.created_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.updated_at):c.data.milestone.updated_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.closed_at):c.data.milestone.closed_at,(0,n.isEmpty)(c.data.milestone)?null:this.format?await t.format_date(c.data.milestone.due_on):c.data.milestone.due_on]),u={id:c.data.id,html_url:c.data.html_url,number:c.data.number,state:c.data.state,title:c.data.title,body:c.data.body,user:{id:c.data.user.id,login:c.data.user.login,name:(0,n.isEmpty)(c.data.user.name)?null:c.data.user.name,email:(0,n.isEmpty)(c.data.user.email)?null:c.data.user.email,html_url:c.data.user.html_url,avatar_url:c.data.user.avatar_url},labels:(0,n.isEmpty)(c.data.labels)?null:c.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(c.data.assignee)?null:{id:c.data.assignee.id,login:c.data.assignee.login,name:(0,n.isEmpty)(c.data.assignee.name)?null:c.data.assignee.name,email:(0,n.isEmpty)(c.data.assignee.email)?null:c.data.assignee.email,html_url:c.data.assignee.html_url,avatar_url:c.data.assignee.avatar_url},assignees:(0,n.isEmpty)(c.data.assignees)?null:c.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(c.data.milestone)?null:{id:c.data.milestone.id,url:c.data.milestone.url,number:c.data.milestone.number,state:c.data.milestone.state,title:c.data.milestone.title,description:c.data.milestone.description,open_issues:c.data.milestone.open_issues,closed_issues:c.data.milestone.closed_issues,created_at:a,updated_at:o,closed_at:s,due_on:l},created_at:e,updated_at:r,closed_at:i};c.data=u}return c}catch(e){throw Error(`[GitHub] 添加子议题失败: ${e.message}`)}}async add_sub_issue(e){return await this.create_sub_issue(e)}async remove_sub_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.IssueCommentNotFoundMsg);if(!e.sub_issue_id)throw Error(t.MissingSubIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a,sub_issue_id:o}=e,s=await this.delete(`/repos/${r}/${i}/issues/${a}/sub_issue`,null,{sub_issue_id:o});if(s.statusCode===404)throw Error(t.IssueNotFoundMsg);if(s.data){let[e,r,i,a,o,c,l]=await Promise.all([this.format?t.format_date(s.data.created_at):s.data.created_at,this.format?t.format_date(s.data.updated_at):s.data.updated_at,(0,n.isEmpty)(s.data.closed_at)?null:this.format?await t.format_date(s.data.closed_at):s.data.closed_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.created_at):s.data.milestone.created_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.updated_at):s.data.milestone.updated_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.closed_at):s.data.milestone.closed_at,(0,n.isEmpty)(s.data.milestone)?null:this.format?await t.format_date(s.data.milestone.due_on):s.data.milestone.due_on]),u={id:s.data.id,html_url:s.data.html_url,number:s.data.number,state:s.data.state,title:s.data.title,body:s.data.body,user:{id:s.data.user.id,login:s.data.user.login,name:(0,n.isEmpty)(s.data.user.name)?null:s.data.user.name,email:(0,n.isEmpty)(s.data.user.email)?null:s.data.user.email,html_url:s.data.user.html_url,avatar_url:s.data.user.avatar_url},labels:(0,n.isEmpty)(s.data.labels)?null:s.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(s.data.assignee)?null:{id:s.data.assignee.id,login:s.data.assignee.login,name:(0,n.isEmpty)(s.data.assignee.name)?null:s.data.assignee.name,email:(0,n.isEmpty)(s.data.assignee.email)?null:s.data.assignee.email,html_url:s.data.assignee.html_url,avatar_url:s.data.assignee.avatar_url},assignees:(0,n.isEmpty)(s.data.assignees)?null:s.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(s.data.milestone)?null:{id:s.data.milestone.id,url:s.data.milestone.url,number:s.data.milestone.number,state:s.data.milestone.state,title:s.data.milestone.title,description:s.data.milestone.description,open_issues:s.data.milestone.open_issues,closed_issues:s.data.milestone.closed_issues,created_at:a,updated_at:o,closed_at:c,due_on:l},created_at:e,updated_at:r,closed_at:i};s.data=u}return s}catch(e){throw Error(`[GitHub] 删除子议题失败: ${e.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw Error(t.MissingRepoOwnerOrNameMsg);if(!e.issue_number)throw Error(t.IssueCommentNotFoundMsg);if(!e.sub_issue_id)throw Error(t.MissingSubIssueNumberMsg);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,issue_number:a,sub_issue_id:o,...s}=e,c={};s.before_id&&!s.after_id&&(c.before_id=s.before_id.toString()),s.after_id&&!s.before_id&&(c.after_id=s.after_id.toString());let l=`/repos/${r}/${i}/issues/${a}/sub_issues/priority`,u=await this.patch(l,c,{sub_issue_id:String(o)});if(u.statusCode===404)throw Error(t.IssueNotFoundMsg);if(u.data){let[e,r,i,a,o,s,c]=await Promise.all([this.format?t.format_date(u.data.created_at):u.data.created_at,this.format?t.format_date(u.data.updated_at):u.data.updated_at,(0,n.isEmpty)(u.data.closed_at)?null:this.format?await t.format_date(u.data.closed_at):u.data.closed_at,(0,n.isEmpty)(u.data.milestone)?null:this.format?await t.format_date(u.data.milestone.created_at):u.data.milestone.created_at,(0,n.isEmpty)(u.data.milestone)?null:this.format?await t.format_date(u.data.milestone.updated_at):u.data.milestone.updated_at,(0,n.isEmpty)(u.data.milestone)?null:this.format?await t.format_date(u.data.milestone.closed_at):u.data.milestone.closed_at,(0,n.isEmpty)(u.data.milestone)?null:this.format?await t.format_date(u.data.milestone.due_on):u.data.milestone.due_on]),l={id:u.data.id,html_url:u.data.html_url,number:u.data.number,state:u.data.state,title:u.data.title,body:u.data.body,user:{id:u.data.user.id,login:u.data.user.login,name:(0,n.isEmpty)(u.data.user.name)?null:u.data.user.name,email:(0,n.isEmpty)(u.data.user.email)?null:u.data.user.email,html_url:u.data.user.html_url,avatar_url:u.data.user.avatar_url},labels:(0,n.isEmpty)(u.data.labels)?null:u.data.labels.map(e=>({id:e.id,name:e.name,color:e.color})),assignee:(0,n.isEmpty)(u.data.assignee)?null:{id:u.data.assignee.id,login:u.data.assignee.login,name:(0,n.isEmpty)(u.data.assignee.name)?null:u.data.assignee.name,email:(0,n.isEmpty)(u.data.assignee.email)?null:u.data.assignee.email,html_url:u.data.assignee.html_url,avatar_url:u.data.assignee.avatar_url},assignees:(0,n.isEmpty)(u.data.assignees)?null:u.data.assignees.map(e=>({id:e.id,login:e.login,name:(0,n.isEmpty)(e.name)?null:e.name,email:(0,n.isEmpty)(e.email)?null:e.email,html_url:e.html_url,avatar_url:e.avatar_url})),milestone:(0,n.isEmpty)(u.data.milestone)?null:{id:u.data.milestone.id,url:u.data.milestone.url,number:u.data.milestone.number,state:u.data.milestone.state,title:u.data.milestone.title,description:u.data.milestone.description,open_issues:u.data.milestone.open_issues,closed_issues:u.data.milestone.closed_issues,created_at:a,updated_at:o,closed_at:s,due_on:c},created_at:e,updated_at:r,closed_at:i};u.data=l}return u}catch(e){throw Error(`[GitHub] 重新排序子议题失败: ${e.message}`)}}};Object.defineProperty(exports,`Issue`,{enumerable:!0,get:function(){return r}});