@candriajs/git-neko-kit
Version:
Github, Gitee, GitCode API封装库
1 lines • 3.97 kB
JavaScript
import{DisableRepoWorkflowSuccessMsg as e,EnableRepoWorkflowSuccessMsg as t,FailedToDisableRepoWorkflowFailedMsg as n,FailedToEnableRepoWorkflowFailedMsg as r,FailedToReRunRepoWorkflowFailedMsg as i,FailedToRepoWorkflowDispatchMsg as a,GitHubClient as o,MissingJobIdMsg as s,MissingRefMsg as c,MissingRepoOwnerOrNameMsg as l,MissingWorkflowIdMsg as u,PermissionDeniedMsg as d,ReRunRepoWorkflowSuccessMsg as f,RunRepoWorkflowSuccessMsg as p,WorkflowOrRepoNotFoundMsg as m,format_date as h}from"./client-sGV7POG-.mjs";var g=class extends o{constructor(e){super(e),this.userToken=e.userToken,this.base_url=e.base_url,this.api_url=e.api_url}async get_workflow_info(e){if(!e.owner||!e.repo)throw Error(l);if(!e.workflow_id)throw Error(u);try{let{owner:t,repo:n,workflow_id:r}=e;this.setRequestConfig({token:this.userToken});let i=await this.get(`/repos/${t}/${n}/actions/workflows/${r}`);if(i.statusCode===404)throw Error(m);if(i.data){let e={id:i.data.id,html_url:i.data.html_url,name:i.data.name,path:i.data.path,state:i.data.state,created_at:this.format?await h(i.data.created_at):i.data.created_at,updated_at:this.format?await h(i.data.updated_at):i.data.updated_at};i.data=e}return i}catch(e){throw Error(`获取工作流信息失败: ${e.message}`)}}async get_repo_workflows_list(e){if(!e.owner||!e.repo)throw Error(l);try{this.setRequestConfig({token:this.userToken});let{owner:t,repo:n}=e,r={};e.per_page&&(r.per_page=e.per_page),e.page&&(r.page=e.page);let i=await this.get(`/repos/${t}/${n}/actions/workflows`,r);if(i.statusCode===404)throw Error(m);if(i.data){let e={total:i.data.total_count,workflows:await Promise.all(i.data.workflows.map(async e=>({id:e.id,html_url:e.html_url,name:e.name,path:e.path,state:e.state,created_at:this.format?await h(e.created_at):e.created_at,updated_at:this.format?await h(e.updated_at):e.updated_at})))};i.data=e}return i}catch(e){throw Error(`获取工作流列表失败: ${e.message}`)}}async run_repo_workflow(e){if(!e.owner||!e.repo)throw Error(l);if(!e.workflow_id)throw Error(u);if(!e.ref)throw Error(c);try{this.setRequestConfig({token:this.userToken});let{owner:t,repo:n,workflow_id:r}=e,i={ref:e.ref};e.inputs&&(i.inputs=e.inputs);let o=await this.post(`/repos/${t}/${n}/actions/workflows/${r}/dispatches`,i);if(o.statusCode===404)throw Error(m);if(o.statusCode===403)throw Error(d);let s;return s=o.statusCode===204?{success:!0,message:p(r)}:{success:!1,message:a(r)},o.data=s,o}catch(e){throw Error(`运行工作流失败: ${e.message}`)}}async enable_repo_workflow(e){if(!e.owner||!e.repo)throw Error(l);if(!e.workflow_id)throw Error(u);try{this.setRequestConfig({token:this.userToken});let{owner:n,repo:i,workflow_id:a}=e,o=await this.put(`/repos/${n}/${i}/actions/workflows/${a}/enable`,null);if(o.statusCode===404)throw Error(m);if(o.statusCode===403)throw Error(d);let s;return s=o.statusCode===204?{success:!0,message:t(a)}:{success:!1,message:r(a)},o.data=s,o}catch(e){throw Error(`启用工作流失败: ${e.message}`)}}async disable_repo_workflow(t){if(!t.owner||!t.repo)throw Error(l);if(!t.workflow_id)throw Error(u);try{this.setRequestConfig({token:this.userToken});let{owner:r,repo:i,workflow_id:a}=t,o=await this.put(`/repos/${r}/${i}/actions/workflows/${a}/disable`,null);if(o.statusCode===404)throw Error(m);if(o.statusCode===403)throw Error(d);let s;return s=o.statusCode===204?{success:!0,message:e(a)}:{success:!1,message:n(a)},o.data=s,o}catch(e){throw Error(`禁用工作流失败: ${e.message}`)}}async rerun_repo_workflow(e){if(!e.owner||!e.repo)throw Error(l);if(!e.job_id)throw Error(s);try{this.setRequestConfig({token:this.userToken});let{owner:t,repo:n,job_id:r}=e,a=await this.post(`/repos/${t}/${n}/actions/jobs/${r}/rerun`,null);if(a.statusCode===404)throw Error(m);if(a.statusCode===403)throw Error(d);let o;return o=a.statusCode===204?{success:!0,message:f(r)}:{success:!1,message:i(r)},a.data=o,a}catch(e){throw Error(`重新运行工作流失败: ${e.message}`)}}};export{g as Workflow};