@candriajs/git-neko-kit 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var Ot=require('path'),url=require('url'),child_process=require('child_process'),he=require('fs'),util=require('util'),jt=require('color-convert'),we=require('dayjs'),Vt=require('dayjs/plugin/relativeTime.js'),Kt=require('git-url-parse'),Jt=require('language-colors'),simpleGit=require('simple-git'),uuid=require('uuid'),O=require('axios'),httpProxyAgent=require('http-proxy-agent'),httpsProxyAgent=require('https-proxy-agent'),socksProxyAgent=require('socks-proxy-agent'),lodashEs=require('lodash-es'),St=require('crypto'),na=require('jsonwebtoken');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ot__default=/*#__PURE__*/_interopDefault(Ot);var he__default=/*#__PURE__*/_interopDefault(he);var jt__default=/*#__PURE__*/_interopDefault(jt);var we__default=/*#__PURE__*/_interopDefault(we);var Vt__default=/*#__PURE__*/_interopDefault(Vt);var Kt__default=/*#__PURE__*/_interopDefault(Kt);var Jt__default=/*#__PURE__*/_interopDefault(Jt);var O__default=/*#__PURE__*/_interopDefault(O);var St__default=/*#__PURE__*/_interopDefault(St);var na__default=/*#__PURE__*/_interopDefault(na);var Ut=Object.defineProperty;var w=(d,e)=>()=>(d&&(e=d(d=0)),e);var k=(d,e)=>{for(var a in e)Ut(d,a,{get:e[a],enumerable:true});};var f,De,A,Ue,Oe,Ne,Fe,oe,v,ie,Be,ne,We,ze,S,je,Ve,Ke,_,p,le,C,Je,y,Ye,ue,H,Xe,$,Qe,G,de,Ze,D,P,et,R,tt,at,M,rt,F,st,B,ot,it,nt,pe,W,x,lt,ut,dt,z,U,pt,mt,me,ct,_t,gt,L,ce=w(()=>{f="\u55B5\u545C~ \u5F53\u524D\u5BA2\u6237\u7AEF\u7C7B\u578B\u4E0D\u662FApp\u7C7B\u578B, \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u54E6",De="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEF\u914D\u7F6E\u4E0D\u5B8C\u6574",A="\u55B5\u545C~ \u8BF7\u6C42\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",Ue="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Oe="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Ne="\u55B5\u545C~ \u5E94\u7528\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A",Fe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",oe="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",v="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",ie="\u55B5\u545C~ \u5237\u65B0\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",Be="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6807\u9898",ne="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",We="\u55B5\u545C~ \u672C\u5730\u4ED3\u5E93\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",ze="\u55B5\u545C~ \u8FDC\u7A0B\u4ED3\u5E93URL\u4E0D\u80FD\u4E3A\u7A7A",S="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",je="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",Ve="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",Ke="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",_="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",p="\u55B5\u545C~ \u4ED3\u5E93\u62E5\u6709\u8005\u6216\u4ED3\u5E93\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",le="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",C="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",Je="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",y="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ye="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",ue="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",H="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",Xe="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",$="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",Qe="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",G="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",de="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",Ze="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",D="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",P="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",et="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",R="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",tt="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",at="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u7F16\u53F7\u6216\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",M="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",rt="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",F="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",st="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",B="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",ot="\u55B5\u545C~ \u9501\u5B9A\u8BAE\u9898\u5931\u8D25",it="\u55B5\u545C~ \u89E3\u9501\u8BAE\u9898\u5931\u8D25",nt="\u55B5\u545C~ \u5220\u9664\u8BAE\u9898\u5931\u8D25",pe="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",W="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",x="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",lt="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6E90\u5206\u652F",ut="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u76EE\u6807\u5206\u652F",dt="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7684\u5408\u5E76\u65B9\u5F0F\u4E0D\u652F\u6301",z="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",U="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",pt="\u55B5\u545C~ \u8FD9\u4E2ASHA\u503C\u4E0E\u5934\u90E8\u5206\u652F\u7684SHA\u503C\u4E0D\u5339\u914D",mt="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",me="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",ct="\u55B5\u545C~ WebHook \u7B7E\u540D\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A\u54E6",_t="\u55B5\u545C~ WebHook \u8BF7\u6C42\u4F53\u4E0D\u80FD\u4E3A\u7A7A\u54E6",gt="\u55B5\u545C~ WebHook \u7B7E\u540D\u5934\u4E0D\u80FD\u4E3A\u7A7A\u54E6",L="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var ht,_e,ge,wt,yt,ft=w(()=>{ht="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",_e="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",ge="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",wt="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u5220\u9664\u6210\u529F",yt="\u55B5\u545C~ WebHook\u7B7E\u540D\u9A8C\u8BC1\u6210\u529F";});var Ft,bt,Rt=w(()=>{Ft=Object.freeze(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)))),bt=Object.freeze(Ot__default.default.join(Ft,"../..").replace(/\\/g,"/"));});async function Xt(d){try{return await he__default.default.promises.access(d),!0}catch{return false}}function Ct(d="",e=""){e=e||bt;try{let a=`${e}/${d}`;if(!he__default.default.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let o=he__default.default.readFileSync(a,"utf8");return JSON.parse(o)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${d}`,a),{}}}async function Pt(d="zh-cn"){await import(`dayjs/locale/${String(d).toLowerCase()}.js`);}async function m(d,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await Pt(e),we__default.default(d).locale(e).format(a)}async function Qt(d,e="zh-cn"){return await Pt(e),we__default.default.extend(Vt__default.default),we__default.default(d).fromNow()}function j(d){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=d.match(e);if(a){let s=a[1];d=s.startsWith("https")?s:`https://${s}`;}let o=Kt__default.default(d);return {owner:o.owner,repo:o.name}}async function Et(){return (await Yt("git --version")).toString("utf-8").trim()}async function Zt(d){if(!d)throw new Error(We);try{try{await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let e=Ot__default.default.join(d,".git");if(!await Xt(e))throw new Error(`\u8DEF\u5F84 ${d} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93`);let s=await simpleGit.simpleGit(d).revparse(["--abbrev-ref","HEAD"]);if(!s)throw new Error("\u65E0\u6CD5\u83B7\u53D6\u4ED3\u5E93\u5206\u652F\u4FE1\u606F\uFF0C\u8BF7\u786E\u4FDD\u4ED3\u5E93\u5DF2\u521D\u59CB\u5316");return s.trim()}catch(e){throw new Error(`\u83B7\u53D6\u672C\u5730\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}async function ye(d){if(!d)throw new Error(ze);try{let e;try{e=await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let a=new URL(d);if(a.protocol!=="https:"&&a.protocol!=="http:")throw new Error("\u8FDC\u7A0B\u4ED3\u5E93URL\u5FC5\u987B\u662FHTTP\u6216HTTPS\u534F\u8BAE");let{owner:o,repo:s}=j(a.href);if(!(o||s))throw new Error(`url: ${a.href} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93\u5730\u5740`);let i=(await simpleGit.simpleGit().raw(["ls-remote","--symref",d,"HEAD"])).match(/^ref: refs\/heads\/([^\t\n]+)/m);if(!i)throw new Error("\u65E0\u6CD5\u4ECE\u8FDC\u7A0B\u4ED3\u5E93\u83B7\u53D6\u9ED8\u8BA4\u5206\u652F\u4FE1\u606F");return i[1]}catch(e){throw new Error(`\u83B7\u53D6\u8FDC\u7A0B\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}function ea(d){if(!Array.isArray(d))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(d.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!d.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${jt__default.default.rgb.hex(d)}`}function fe(d){return d=String(d).toLowerCase(),ea(Jt__default.default[d].color)??"#ededed"}async function ta(d,e){return Promise.resolve(Array.from({length:Math.ceil(d.length/e)},(a,o)=>d.slice(o*e,o*e+e)))}async function kt(d){try{if(!d)return {total:0,contributions:[]};let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,o=Array.from(d.matchAll(e),i=>i[1]),s=Array.from(d.matchAll(a),i=>String(i[1]).toLowerCase()==="no"?0:parseInt(i[1]));if(!o.length||!s.length)return {total:0,contributions:[]};let t=o.map((i,n)=>({date:i,count:s[n]})).sort((i,n)=>i.date.localeCompare(n.date)),r=await ta(t,7);return {total:s.reduce((i,n)=>i+n,0),contributions:r}}catch(e){throw new Error(`\u89E3\u6790\u8D21\u732E\u6570\u636E\u5931\u8D25: ${e}`)}}var Yt,be=w(()=>{ce();Rt();Yt=util.promisify(child_process.execSync);});var Re,vt=w(()=>{be();Re=Ct("package.json");});var b=w(()=>{ce();ft();be();vt();});function Te(d="github",e,a="common"){let o={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}function q(d="github",e,a="common"){let o={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}async function ra(){return Promise.resolve(uuid.v4().replace(/-/g,""))}var V=w(()=>{});var K,Ce=w(()=>{b();K=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",o,s,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=o,this.proxy=s,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,o,s,t){let r=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),i={headers:this.createHeaders(t),params:o,validateStatus:()=>true};if(this.proxy){let n=this.proxy.type,l=this.proxy.address;switch(n){case "http":i.httpAgent=new httpProxyAgent.HttpProxyAgent(l),i.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(l);break;case "https":i.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(l);break;case "socks":case "socks5":{let u=new socksProxyAgent.SocksProxyAgent(l);i.httpAgent=u,i.httpsAgent=u;break}}}try{let n;switch(e){case "get":n=await O__default.default.get(r,i);break;case "post":n=await O__default.default.post(r,s,i);break;case "patch":n=await O__default.default.patch(r,s,i);break;case "put":n=await O__default.default.put(r,s,i);break;case "delete":n=await O__default.default.delete(r,{...i,data:s});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let l=Object.fromEntries(Object.entries(n.headers).filter(([u,c])=>c!==void 0).map(([u,c])=>[u.toLowerCase(),c]));return {success:!0,statusCode:n.status,headers:l,data:n.data,msg:n.status>=200&&n.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(n){let l=n,u=l.response?.headers?Object.fromEntries(Object.entries(l.response.headers).filter(([c,I])=>I!==void 0).map(([c,I])=>[c,I])):{};return {success:false,statusCode:l.response?.status??500,headers:u,msg:l.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,o){return this.request("get",e,a,null,o)}async post(e,a,o,s){return this.request("post",e,a,o,s)}async patch(e,a=null,o,s){return this.request("patch",e,a,o,s)}async put(e,a,o,s){return this.request("put",e,a,o,s)}async delete(e,a=null,o,s){return this.request("delete",e,a,o,s)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${Re.name}/v${Re.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let o=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${o}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var Pe=w(()=>{V();Ce();});var It={};k(It,{Auth:()=>J});var J,Ee=w(()=>{b();E();J=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_token_by_code(e){if(!this.is_app_client)throw new Error(f);if(!e.code)throw new Error(oe);try{this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!o)throw new Error(Ke);let s={success:o,info:_e,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=s;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{if(!this.is_app_client)throw new Error(f);let a=e?.access_token??this.userToken;if(!a)throw new Error(S);if(!a.startsWith("ghu_"))throw new Error(v);this.setRequestConfig({url:this.api_url,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let o=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(o.data){let s=!(o.status==="ok"&&(o.statusCode===404||o.statusCode===422));o.data={success:s,info:s?_e:je};}return o}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!this.is_app_client)throw new Error(f);if(!e.refresh_token)throw new Error(oe);if(!e.refresh_token.startsWith("ghr_"))throw new Error(ie);this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error,s=Ve;switch(a.data.error){case "bad_refresh_token":s=ie;break;case "unauthorized":s=_;break}if(a.data){if(!o)throw new Error(s);let t={success:o,info:ht,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`[GitHub] \u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL("/login/oauth/authorize",this.base_url);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`[GitHub] \u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var $t={};k($t,{Commit:()=>X});var X,ke=w(()=>{b();E();X=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,o,s,t;if("url"in e){s=e.url;let i=j(s);a=i?.owner,o=i?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});let r=await this.get(`/repos/${a}/${o}/commits/${t}`);switch(r.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue);case 422:throw new Error(Ye)}if(r.data){let i=r.data?.commit?.message??"",[n,...l]=i.split(`
2
- `),u={html_url:r.data.html_url,sha:r.data.sha,comments_url:r.data.comments_url,commit:{url:r.data.commit.url,author:{id:r.data.author.id,login:r.data.author.login,name:r.data.commit.author.name,avatar_url:r.data.author.avatar_url,email:r.data.commit.author.email,html_url:r.data.author.html_url,type:lodashEs.capitalize(String(r.data.author.type).toLowerCase()),date:this.format?await m(r.data.commit.author.date):r.data.commit.author.date},committer:{id:r.data.committer.id,login:r.data.committer.login,name:r.data.commit.committer.name,avatar_url:r.data.committer.avatar_url,email:r.data.commit.committer.email,html_url:r.data.committer.html_url,type:lodashEs.capitalize(String(r.data.committer.type).toLowerCase()),date:this.format?await m(r.data.commit.committer.date):r.data.commit.committer.date},message:r.data.commit.message,...this.format&&{title:n,body:l<0?l.join(`
3
- `):null},tree:{url:r.data.commit.tree.url,sha:r.data.commit.tree.sha}},parents:r.data.parents.map(c=>({sha:c.sha,url:c.url})),stats:{additions:r.data.stats.additions,deletions:r.data.stats.deletions,total:r.data.stats.total},files:r.data.files.map(c=>({sha:c.sha,filename:c.filename,status:c.status,additions:c.additions,deletions:c.deletions,changes:c.changes,blob_url:c.blob_url,raw_url:c.raw_url}))};r.data=u;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_commit_list(e){try{this.setRequestConfig({token:this.userToken});let a,o,s;if("url"in e){s=e.url;let l=j(s);a=l?.owner,o=l?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);let{...t}=e;if(e.sha)t.sha=e.sha;else {let u=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});u&&(t.sha=u);}let r={};t.sha&&(r.sha=t.sha),t.path&&(r.path=t.path),t.author&&(r.author=t.author),t.since&&(r.since=t.since),t.until&&(r.until=t.until),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let i=`/repos/${a}/${o}/commits`,n=await this.get(i,r);switch(n.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue)}if(n.data){let l=await Promise.all(n.data.map(async u=>{let[c,...I]=u.commit.message.split(`
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var Ot=require('path'),url=require('url'),child_process=require('child_process'),he=require('fs'),zt=require('color-convert'),we=require('dayjs'),jt=require('dayjs/plugin/relativeTime.js'),Vt=require('git-url-parse'),Kt=require('language-colors'),simpleGit=require('simple-git'),uuid=require('uuid'),O=require('axios'),httpProxyAgent=require('http-proxy-agent'),httpsProxyAgent=require('https-proxy-agent'),socksProxyAgent=require('socks-proxy-agent'),lodashEs=require('lodash-es'),St=require('crypto'),ia=require('jsonwebtoken');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ot__default=/*#__PURE__*/_interopDefault(Ot);var he__default=/*#__PURE__*/_interopDefault(he);var zt__default=/*#__PURE__*/_interopDefault(zt);var we__default=/*#__PURE__*/_interopDefault(we);var jt__default=/*#__PURE__*/_interopDefault(jt);var Vt__default=/*#__PURE__*/_interopDefault(Vt);var Kt__default=/*#__PURE__*/_interopDefault(Kt);var O__default=/*#__PURE__*/_interopDefault(O);var St__default=/*#__PURE__*/_interopDefault(St);var ia__default=/*#__PURE__*/_interopDefault(ia);var Ut=Object.defineProperty;var w=(d,e)=>()=>(d&&(e=d(d=0)),e);var k=(d,e)=>{for(var a in e)Ut(d,a,{get:e[a],enumerable:true});};var f,De,A,Ue,Oe,Ne,Fe,oe,v,ie,We,ne,Be,ze,S,je,Ve,Ke,_,p,le,C,Je,y,Ye,ue,H,Xe,x,Qe,G,de,Ze,D,P,et,R,tt,at,M,rt,F,st,W,ot,it,nt,pe,B,$,lt,ut,dt,z,U,pt,mt,me,ct,_t,gt,L,ce=w(()=>{f="\u55B5\u545C~ \u5F53\u524D\u5BA2\u6237\u7AEF\u7C7B\u578B\u4E0D\u662FApp\u7C7B\u578B, \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u54E6",De="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEF\u914D\u7F6E\u4E0D\u5B8C\u6574",A="\u55B5\u545C~ \u8BF7\u6C42\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",Ue="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Oe="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Ne="\u55B5\u545C~ \u5E94\u7528\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A",Fe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",oe="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",v="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",ie="\u55B5\u545C~ \u5237\u65B0\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",We="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6807\u9898",ne="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",Be="\u55B5\u545C~ \u672C\u5730\u4ED3\u5E93\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",ze="\u55B5\u545C~ \u8FDC\u7A0B\u4ED3\u5E93URL\u4E0D\u80FD\u4E3A\u7A7A",S="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",je="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",Ve="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",Ke="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",_="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",p="\u55B5\u545C~ \u4ED3\u5E93\u62E5\u6709\u8005\u6216\u4ED3\u5E93\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",le="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",C="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",Je="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",y="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ye="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",ue="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",H="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",Xe="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",x="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",Qe="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",G="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",de="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",Ze="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",D="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",P="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",et="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",R="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",tt="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",at="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u7F16\u53F7\u6216\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",M="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",rt="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",F="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",st="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",W="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",ot="\u55B5\u545C~ \u9501\u5B9A\u8BAE\u9898\u5931\u8D25",it="\u55B5\u545C~ \u89E3\u9501\u8BAE\u9898\u5931\u8D25",nt="\u55B5\u545C~ \u5220\u9664\u8BAE\u9898\u5931\u8D25",pe="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",B="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",$="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",lt="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6E90\u5206\u652F",ut="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u76EE\u6807\u5206\u652F",dt="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7684\u5408\u5E76\u65B9\u5F0F\u4E0D\u652F\u6301",z="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",U="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",pt="\u55B5\u545C~ \u8FD9\u4E2ASHA\u503C\u4E0E\u5934\u90E8\u5206\u652F\u7684SHA\u503C\u4E0D\u5339\u914D",mt="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",me="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",ct="\u55B5\u545C~ WebHook \u7B7E\u540D\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A\u54E6",_t="\u55B5\u545C~ WebHook \u8BF7\u6C42\u4F53\u4E0D\u80FD\u4E3A\u7A7A\u54E6",gt="\u55B5\u545C~ WebHook \u7B7E\u540D\u5934\u4E0D\u80FD\u4E3A\u7A7A\u54E6",L="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var ht,_e,ge,wt,yt,ft=w(()=>{ht="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",_e="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",ge="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",wt="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u5220\u9664\u6210\u529F",yt="\u55B5\u545C~ WebHook\u7B7E\u540D\u9A8C\u8BC1\u6210\u529F";});var Ft,bt,Rt=w(()=>{Ft=Object.freeze(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)))),bt=Object.freeze(Ot__default.default.join(Ft,"../..").replace(/\\/g,"/"));});function Jt(d,e){return new Promise(o=>{child_process.exec(d,e,(s,t,r)=>{t=t.toString(),r=r.toString(),o({status:!s,error:s,stdout:t,stderr:r});});})}async function Yt(d){try{return await he__default.default.promises.access(d),!0}catch{return false}}function Ct(d="",e=""){e=e||bt;try{let a=`${e}/${d}`;if(!he__default.default.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let o=he__default.default.readFileSync(a,"utf8");return JSON.parse(o)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${d}`,a),{}}}async function Pt(d="zh-cn"){await import(`dayjs/locale/${String(d).toLowerCase()}.js`);}async function m(d,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await Pt(e),we__default.default(d).locale(e).format(a)}async function Xt(d,e="zh-cn"){return await Pt(e),we__default.default.extend(jt__default.default),we__default.default(d).fromNow()}function j(d){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=d.match(e);if(a){let s=a[1];d=s.startsWith("https")?s:`https://${s}`;}let o=Vt__default.default(d);return {owner:o.owner,repo:o.name}}async function Et(){let{stdout:d}=await Jt("git --version");return d.toString().trim()}async function Qt(d){if(!d)throw new Error(Be);try{try{await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let e=Ot__default.default.join(d,".git");if(!await Yt(e))throw new Error(`\u8DEF\u5F84 ${d} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93`);let s=await simpleGit.simpleGit(d).revparse(["--abbrev-ref","HEAD"]);if(!s)throw new Error("\u65E0\u6CD5\u83B7\u53D6\u4ED3\u5E93\u5206\u652F\u4FE1\u606F\uFF0C\u8BF7\u786E\u4FDD\u4ED3\u5E93\u5DF2\u521D\u59CB\u5316");return s.trim()}catch(e){throw new Error(`\u83B7\u53D6\u672C\u5730\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}async function ye(d){if(!d)throw new Error(ze);try{let e;try{e=await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let a=new URL(d);if(a.protocol!=="https:"&&a.protocol!=="http:")throw new Error("\u8FDC\u7A0B\u4ED3\u5E93URL\u5FC5\u987B\u662FHTTP\u6216HTTPS\u534F\u8BAE");let{owner:o,repo:s}=j(a.href);if(!(o||s))throw new Error(`url: ${a.href} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93\u5730\u5740`);let n=(await simpleGit.simpleGit().raw(["ls-remote","--symref",d,"HEAD"])).match(/^ref: refs\/heads\/([^\t\n]+)/m);if(!n)throw new Error("\u65E0\u6CD5\u4ECE\u8FDC\u7A0B\u4ED3\u5E93\u83B7\u53D6\u9ED8\u8BA4\u5206\u652F\u4FE1\u606F");return n[1]}catch(e){throw new Error(`\u83B7\u53D6\u8FDC\u7A0B\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}function Zt(d){if(!Array.isArray(d))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(d.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!d.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${zt__default.default.rgb.hex(d)}`}function fe(d){return d=String(d).toLowerCase(),Zt(Kt__default.default[d].color)??"#ededed"}async function ea(d,e){return Promise.resolve(Array.from({length:Math.ceil(d.length/e)},(a,o)=>d.slice(o*e,o*e+e)))}async function kt(d){try{if(!d)return {total:0,contributions:[]};let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,o=Array.from(d.matchAll(e),n=>n[1]),s=Array.from(d.matchAll(a),n=>String(n[1]).toLowerCase()==="no"?0:parseInt(n[1]));if(!o.length||!s.length)return {total:0,contributions:[]};let t=o.map((n,i)=>({date:n,count:s[i]})).sort((n,i)=>n.date.localeCompare(i.date)),r=await ea(t,7);return {total:s.reduce((n,i)=>n+i,0),contributions:r}}catch(e){throw new Error(`\u89E3\u6790\u8D21\u732E\u6570\u636E\u5931\u8D25: ${e}`)}}var be=w(()=>{ce();Rt();});var Re,vt=w(()=>{be();Re=Ct("package.json");});var b=w(()=>{ce();ft();be();vt();});function Te(d="github",e,a="common"){let o={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}function q(d="github",e,a="common"){let o={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}async function aa(){return Promise.resolve(uuid.v4().replace(/-/g,""))}var V=w(()=>{});var K,Ce=w(()=>{b();K=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",o,s,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=o,this.proxy=s,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,o,s,t){let r=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),n={headers:this.createHeaders(t),params:o,validateStatus:()=>true};if(this.proxy){let i=this.proxy.type,l=this.proxy.address;switch(i){case "http":n.httpAgent=new httpProxyAgent.HttpProxyAgent(l),n.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(l);break;case "https":n.httpsAgent=new httpsProxyAgent.HttpsProxyAgent(l);break;case "socks":case "socks5":{let u=new socksProxyAgent.SocksProxyAgent(l);n.httpAgent=u,n.httpsAgent=u;break}}}try{let i;switch(e){case "get":i=await O__default.default.get(r,n);break;case "post":i=await O__default.default.post(r,s,n);break;case "patch":i=await O__default.default.patch(r,s,n);break;case "put":i=await O__default.default.put(r,s,n);break;case "delete":i=await O__default.default.delete(r,{...n,data:s});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let l=Object.fromEntries(Object.entries(i.headers).filter(([u,c])=>c!==void 0).map(([u,c])=>[u.toLowerCase(),c]));return {success:!0,statusCode:i.status,headers:l,data:i.data,msg:i.status>=200&&i.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(i){let l=i,u=l.response?.headers?Object.fromEntries(Object.entries(l.response.headers).filter(([c,I])=>I!==void 0).map(([c,I])=>[c,I])):{};return {success:false,statusCode:l.response?.status??500,headers:u,msg:l.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,o){return this.request("get",e,a,null,o)}async post(e,a,o,s){return this.request("post",e,a,o,s)}async patch(e,a=null,o,s){return this.request("patch",e,a,o,s)}async put(e,a,o,s){return this.request("put",e,a,o,s)}async delete(e,a=null,o,s){return this.request("delete",e,a,o,s)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${Re.name}/v${Re.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let o=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${o}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var Pe=w(()=>{V();Ce();});var It={};k(It,{Auth:()=>J});var J,Ee=w(()=>{b();E();J=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_token_by_code(e){if(!this.is_app_client)throw new Error(f);if(!e.code)throw new Error(oe);try{this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!o)throw new Error(Ke);let s={success:o,info:_e,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=s;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{if(!this.is_app_client)throw new Error(f);let a=e?.access_token??this.userToken;if(!a)throw new Error(S);if(!a.startsWith("ghu_"))throw new Error(v);this.setRequestConfig({url:this.api_url,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let o=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(o.data){let s=!(o.status==="ok"&&(o.statusCode===404||o.statusCode===422));o.data={success:s,info:s?_e:je};}return o}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!this.is_app_client)throw new Error(f);if(!e.refresh_token)throw new Error(oe);if(!e.refresh_token.startsWith("ghr_"))throw new Error(ie);this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error,s=Ve;switch(a.data.error){case "bad_refresh_token":s=ie;break;case "unauthorized":s=_;break}if(a.data){if(!o)throw new Error(s);let t={success:o,info:ht,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`[GitHub] \u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL("/login/oauth/authorize",this.base_url);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`[GitHub] \u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var xt={};k(xt,{Commit:()=>X});var X,ke=w(()=>{b();E();X=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,o,s,t;if("url"in e){s=e.url;let n=j(s);a=n?.owner,o=n?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});let r=await this.get(`/repos/${a}/${o}/commits/${t}`);switch(r.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue);case 422:throw new Error(Ye)}if(r.data){let n=r.data?.commit?.message??"",[i,...l]=n.split(`
2
+ `),u={html_url:r.data.html_url,sha:r.data.sha,comments_url:r.data.comments_url,commit:{url:r.data.commit.url,author:{id:r.data.author.id,login:r.data.author.login,name:r.data.commit.author.name,avatar_url:r.data.author.avatar_url,email:r.data.commit.author.email,html_url:r.data.author.html_url,type:lodashEs.capitalize(String(r.data.author.type).toLowerCase()),date:this.format?await m(r.data.commit.author.date):r.data.commit.author.date},committer:{id:r.data.committer.id,login:r.data.committer.login,name:r.data.commit.committer.name,avatar_url:r.data.committer.avatar_url,email:r.data.commit.committer.email,html_url:r.data.committer.html_url,type:lodashEs.capitalize(String(r.data.committer.type).toLowerCase()),date:this.format?await m(r.data.commit.committer.date):r.data.commit.committer.date},message:r.data.commit.message,...this.format&&{title:i,body:l.length>0?l.join(`
3
+ `):null},tree:{url:r.data.commit.tree.url,sha:r.data.commit.tree.sha}},parents:r.data.parents.map(c=>({sha:c.sha,url:c.url})),stats:{additions:r.data.stats.additions,deletions:r.data.stats.deletions,total:r.data.stats.total},files:r.data.files.map(c=>({sha:c.sha,filename:c.filename,status:c.status,additions:c.additions,deletions:c.deletions,changes:c.changes,blob_url:c.blob_url,raw_url:c.raw_url}))};r.data=u;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_commit_list(e){try{this.setRequestConfig({token:this.userToken});let a,o,s;if("url"in e){s=e.url;let l=j(s);a=l?.owner,o=l?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);let{...t}=e;if(e.sha)t.sha=e.sha;else {let u=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});u&&(t.sha=u);}let r={};t.sha&&(r.sha=t.sha),t.path&&(r.path=t.path),t.author&&(r.author=t.author),t.since&&(r.since=t.since),t.until&&(r.until=t.until),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let n=`/repos/${a}/${o}/commits`,i=await this.get(n,r);switch(i.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue)}if(i.data){let l=await Promise.all(i.data.map(async u=>{let[c,...I]=u.commit.message.split(`
4
4
  `);return {html_url:u.html_url,sha:u.sha,comments_url:u.comments_url,commit:{url:u.commit.url,author:{id:u.author.id,login:u.author.login,name:u.commit.author.name,avatar_url:u.author.avatar_url,email:u.commit.author.email,html_url:u.author.html_url,type:lodashEs.capitalize(String(u.author.type).toLowerCase()),date:this.format?await m(u.commit.author.date):u.commit.author.date},committer:{id:u.committer.id,login:u.committer.login,name:u.commit.committer.name,avatar_url:u.committer.avatar_url,email:u.commit.committer.email,html_url:u.committer.html_url,type:lodashEs.capitalize(String(u.committer.type).toLowerCase()),date:this.format?await m(u.commit.committer.date):u.commit.committer.date},message:u.commit.message,...this.format&&{title:c,body:I.length>0?I.join(`
5
- `):null},tree:{url:u.commit.tree.url,sha:u.commit.tree.sha}},parents:u.parents.map(T=>({sha:T.sha,url:T.url})),stats:{additions:u.stats.additions,deletions:u.stats.deletions,total:u.stats.total},files:u.files.map(T=>({sha:T.sha,filename:T.filename,status:T.status,additions:T.additions,deletions:T.deletions,changes:T.changes,blob_url:T.blob_url,raw_url:T.raw_url}))}}));n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u5217\u8868\u5931\u8D25: ${a.message}`)}}};});var xt={};k(xt,{Issue:()=>Q});var Q,ve=w(()=>{b();Pe();E();Q=class extends exports.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 new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.get(`/repos/${a}/${o}/issues/${Number(s)}`);switch(t.statusCode){case 404:throw new Error(P);case 301:throw new Error(et)}if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:this.format?await m(t.data.closed_at):t.data.closed_at,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_issues_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.milestone&&(t.milestone=s.milestone.toString()),s.state&&(t.state=s.state),s.assignee&&(t.assignee=s.assignee),s.creator&&(t.creator=s.creator),s.labels&&(t.labels=s.labels),s.sort&&(t.sort=s.sort),s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues`,i=await this.get(r,t);if(i.statusCode===401)throw new Error(_);if(i.data){let n=i.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:lodashEs.capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u7684\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.title)throw new Error(rt);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={...s,...s.labels&&{labels:Array.isArray(s.labels)?s.labels:[s.labels]},...s.assignees&&{assignees:Array.isArray(s.assignees)?s.assignees:[s.assignees]}},r=await this.post(`/repos/${a}/${o}/issues`,t);switch(r.statusCode){case 403:throw new Error(_);case 301:throw new Error(C)}if(r.data&&r.data){let i={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:lodashEs.capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub]\u521B\u5EFA\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},i=await this.patch(`/repos/${a}/${o}/issues/${Number(s)}`,null,r);switch(i.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(i.data&&i.data){let n={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:lodashEs.capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:lodashEs.capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6253\u5F00\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u5173\u95ED\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,lock_reason:t}=e,r=await this.put(`/repos/${a}/${o}/issues/${Number(s)}`,{locked:!0,lock_reason:t});switch(r.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let i;return r.statusCode===204?i={info:ge}:i={info:ot},r.data=i,r}catch(a){throw new Error(`[GitHub] \u9501\u5B9A\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/${s}/lock`);switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let r;return t.statusCode===204?r={info:ge}:r={info:it},t.data=r,t}catch(a){throw new Error(`[GitHub] \u89E3\u9501\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async get_repo_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.sort&&(t.sort=s.sort),s.direction&&s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues/comments/`,i=await this.get(r,t);if(i.statusCode===404)throw new Error(R);if(i.data){let n=i.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.since&&(r.since=t.since),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let i=`/repos/${a}/${o}/issues/${Number(s)}/comments`,n=await this.get(i,r);if(n.statusCode===404)throw new Error(R);if(n.data){let l=n.data.map(u=>({id:u.id,html_url:u.html_url,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:lodashEs.capitalize(u.user.type.toLowerCase())},created_at:u.created_at,updated_at:u.updated_at}));n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.body)throw new Error(st);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/issues/${Number(s)}/comments`,{body:t});if(r.statusCode===404)throw new Error(R);if(r.data){let i={id:r.data.id,html_url:`${q(this.type)}/${a}/${o}/issues/${s}#${r.data.id}`,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,...t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${Number(s)}`,null,t);if(r.statusCode===404)throw new Error(R);if(r.data){let i={id:r.data.id,html_url:r.data.html_url,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);let r;return t.statusCode===204?r={info:wt}:r={info:nt},t.data=r,t}catch(a){throw new Error(`[GitHub] \u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let i=`/repos/${a}/${o}/issues/${Number(s)}/sub_issues`,n=await this.get(i,r);if(n.statusCode===404)throw new Error(P);if(n.data){let l=n.data.map(u=>({id:u.id,html_url:u.html_url,number:u.number,comments:u.comments,state:u.state,state_reason:u.state_reason,title:u.title,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:lodashEs.capitalize(u.user.type.toLowerCase())},labels:u.labels?u.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:u.assignee?{id:u.assignee.id,login:u.assignee.login,name:u.assignee.name,email:u.assignee.email,html_url:u.assignee.html_url,avatar_url:u.assignee.avatar_url,type:lodashEs.capitalize(u.assignee.type.toLowerCase())}:null,milestone:u.milestone?{id:u.milestone.id,url:u.milestone.url,number:u.milestone.number,state:u.milestone.state,title:u.milestone.title,description:u.milestone.description,open_issues:u.milestone.open_issues,closed_issues:u.milestone.closed_issues,created_at:u.milestone.created_at,updated_at:u.milestone.updated_at,closed_at:u.milestone.closed_at,due_on:u.milestone.due_on}:null,closed_at:u.closed_at,created_at:u.created_at,updated_at:u.updated_at}));n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,replace_parent:r}=e,i=await this.post(`/repos/${a}/${o}/issues/${s}/sub_issues`,{sub_issue_id:t,replace_parent:r});if(i.statusCode===404)throw new Error(P);if(i.data){let n={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:lodashEs.capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:lodashEs.capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t}=e,r=await this.delete(`/repos/${a}/${o}/issues/${s}/sub_issue`,null,{sub_issue_id:t});if(r.statusCode===404)throw new Error(P);if(r.data){let i={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:lodashEs.capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,...r}=e,i={};r.before_id&&!r.after_id&&(i.before_id=r.before_id.toString()),r.after_id&&!r.before_id&&(i.after_id=r.after_id.toString());let n=`/repos/${a}/${o}/issues/${s}/sub_issues/priority`,l=await this.patch(n,i,{sub_issue_id:String(t)});if(l.statusCode===404)throw new Error(P);if(l.data){let u={id:l.data.id,html_url:l.data.html_url,number:l.data.number,comments:l.data.comments,state:l.data.state,state_reason:l.data.state_reason,title:l.data.title,body:l.data.body,user:{id:l.data.user.id,login:l.data.user.login,name:l.data.user.name,email:l.data.user.email,html_url:l.data.user.html_url,avatar_url:l.data.user.avatar_url,type:lodashEs.capitalize(l.data.user.type.toLowerCase())},labels:l.data.labels?l.data.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:l.data.assignee?{id:l.data.assignee.id,login:l.data.assignee.login,name:l.data.assignee.name,email:l.data.assignee.email,html_url:l.data.assignee.html_url,avatar_url:l.data.assignee.avatar_url,type:lodashEs.capitalize(l.data.assignee.type.toLowerCase())}:null,milestone:l.data.milestone?{id:l.data.milestone.id,url:l.data.milestone.url,number:l.data.milestone.number,state:l.data.milestone.state,title:l.data.milestone.title,description:l.data.milestone.description,open_issues:l.data.milestone.open_issues,closed_issues:l.data.milestone.closed_issues,created_at:l.data.milestone.created_at,updated_at:l.data.milestone.updated_at,closed_at:l.data.milestone.closed_at,due_on:l.data.milestone.due_on}:null,closed_at:l.data.closed_at,created_at:l.data.created_at,updated_at:l.data.updated_at};l.data=u;}return l}catch(a){throw new Error(`[GitHub] \u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var qt={};k(qt,{Repo:()=>Z});var Z,Me=w(()=>{b();E();Z=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_repos_list(e){if(!e.org)throw new Error(G);try{this.setRequestConfig({token:this.userToken});let{org:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/orgs/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(G);case 401:throw new Error(y)}if(r.data){let i=await Promise.all(r.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name??null,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email??null},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:this.format?await m(n.created_at):n.created_at,updated_at:this.format?await m(n.updated_at):n.updated_at,pushed_at:this.format?await m(n.pushed_at):n.pushed_at})));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,o={};!e?.visibility&&!e?.affiliation&&a?.type&&(o.type=a.type),a?.visibility&&(o.visibility=a.visibility),a?.affiliation&&(o.affiliation=a.affiliation),a?.sort&&(o.sort=a.sort),a?.direction&&(o.direction=a.direction),a?.per_page&&(o.per_page=a.per_page.toString()),a?.page&&(o.page=a.page.toString());let t=await this.get("/uses/repos",o);if(t.statusCode===401)throw new Error(y);if(t.data){let r=await Promise.all(t.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:this.format?await m(i.created_at):i.created_at,updated_at:this.format?await m(i.updated_at):i.updated_at,pushed_at:this.format?await m(i.pushed_at):i.pushed_at})));t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error($);this.setRequestConfig({token:this.userToken});let{username:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/users/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(H);case 401:throw new Error(y)}if(r.data){let i=await Promise.all(r.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:this.format?await m(n.created_at):n.created_at,updated_at:this.format?await m(n.updated_at):n.updated_at,pushed_at:this.format?await m(n.pushed_at):n.pushed_at})));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(D)}if(s.data){let t={id:s.data.id,name:s.data.name,full_name:s.data.full_name,owner:{id:s.data.owner.id,login:s.data.owner.login,name:s.data.owner.name,avatar_url:s.data.owner.avatar_url,type:s.data.owner.type,html_url:s.data.owner.html_url,email:s.data.owner.email},public:!s.data.private,private:s.data.private,visibility:s.data.private?"private":"public",fork:s.data.fork,archived:s.data.archived,disabled:s.data.disabled,html_url:s.data.html_url,description:s.data.description,stargazers_count:s.data.stargazers_count,watchers_count:s.data.watchers_count,language:s.data.language,forks_count:s.data.forks_count,open_issues_count:s.data.open_issues_count,default_branch:s.data.default_branch,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at,pushed_at:this.format?await m(s.data.pushed_at):s.data.pushed_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/languages`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(C)}if(s.data){let t=Object.entries(s.data),r=t.reduce((l,[,u])=>l+u,0),n={languages:t.map(([l,u])=>({language:l,color:fe(l.toLowerCase()),percent:Number((u/r*100).toFixed(2)),bytes:u}))};s.data=n;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{org:a,...o}=e;if(!a||!e.name)throw new Error(Ze);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility&&(s.private=o.visibility.toString()),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post(`/orgs/${a}/repos`,s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_user_repo(e){try{let{owner:a,...o}=e;if(!a||!e.name)throw new Error(p);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility==="private"&&(s.private=!0),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post("/user/repos",s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7528\u6237\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_repo(e){return this.create_user_repo(e)}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,{...s}=e,t={};s.affiliation&&(t.milestone=s.affiliation.toString()),s.permission&&(t.permission=s.permission.toString()),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/collaborators`,t);if(r.data){let i=await Promise.all(r.data.map(n=>({id:n.id,login:n.login,avatar_url:n.avatar_url,email:n.email,name:n.name,permissions:n.permissions,role_name:n.role_name})));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.put(`/repos/${a}/${o}/collaborators/${s}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(y);if(t.statusCode===422){let r=t.data.message;if(r&&r.includes("is not a valid permission"))throw new Error(_)}if(t.data){let r={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.delete(`/repos/${a}/${o}/collaborators/${s}`);if(t.statusCode===404)throw new Error(y);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u5931\u8D25`},t}catch(a){throw new Error(`[GitHub] \u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.visibility}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e,s;try{let t=this.base_url+"/"+a+"/"+o;s=await ye(t);}catch{s=(await this.get_repo_info({owner:a,repo:o})).data.default_branch;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.language}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var At={};k(At,{User:()=>ee});var ee,$e=w(()=>{b();E();ee=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(D);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:a});let o=await this.get(`/users/${e.username}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(D);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:lodashEs.capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Xe);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/user/${e.user_id}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(H);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:lodashEs.capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_auth(){if(!this.userToken)throw new Error(v);try{this.setRequestConfig({token:this.userToken});let e=await this.get("/user");switch(e.statusCode){case 401:throw new Error(_);case 404:throw new Error(H)}if(e.data){let a={id:e.data.id,login:e.data.login,name:e.data.name||null,type:lodashEs.capitalize(e.data.type.toLowerCase()),html_url:e.data.html_url,avatar_url:e.data.avatar_url,email:e.data.email||null,bio:e.data.bio||null,blog:e.data.blog||null,public_repos:e.data.public_repos,followers:e.data.followers,following:e.data.following};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_user_info_by_token(){return this.get_user_info_by_auth()}async get_user_contribution(e){try{if(!e.username)throw new Error($);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${Qe}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.base_url});let o=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(!o.success)throw new Error("\u83B7\u53D6\u7528\u6237\u8D21\u732E\u6570\u636E\u5931\u8D25");if(o.statusCode===404)throw new Error($);let s=await kt(o.data);return {...o,data:s}}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var Lt={};k(Lt,{Org:()=>te});var te,xe=w(()=>{b();V();E();te=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_info(e){if(!e.org)throw new Error(de);let{org:a}=e;try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/orgs/${a}`);if(o.statusCode===404)throw new Error(G);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name,avatar_url:o.data.avatar_url,description:o.data.description,html_url:o.data.html_url};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async add_member(e){if(!e.org)throw new Error(de);if(!e.username)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a,o,{org:s,username:t,role:r}=e;if(t){let l=await this.get_user();try{a=await l.get_user_id();}catch{o=await l.get_user_email();}}let i={};a?i.invitee_id=a:o&&(i.email=o),r==="admin"?i.role="admin":i.role="direct_member";let n=await this.post(`/orgs/${s}/invitations`,i);if(n.statusCode===404)throw new Error(y);if(n.statusCode===422){let l=n.data.message;if(l&&l.includes("is not a valid permission"))throw new Error(_)}if(n.data){let l={id:n.data.inviter.id,login:n.data.inviterlogin,name:n.data.inviter.name,html_url:`${q(this.type)}/${s}`,role:r};n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u7EC4\u7EC7\u6210\u5458\u5931\u8D25: ${a.message}`)}}};});var Ht={};k(Ht,{WebHook:()=>ae});var ae,qe=w(()=>{b();E();ae=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a)throw new Error(ct);if(!e.payload)throw new Error(_t);if(!e.signature)throw new Error(gt);if(!e.signature.startsWith("sha256="))throw new Error(mt);let o=false,s="error",t=400,r=me,i;try{let n=St__default.default.createHmac("sha256",a),l=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);n.update(l,"utf8");let u=n.digest("hex"),c=e.signature.replace("sha256=","");St__default.default.timingSafeEqual(Buffer.from(u),Buffer.from(c))?(o=!0,s="ok",t=200,r="\u8BF7\u6C42\u6210\u529F",i={success:o,info:yt}):(o=!1,s="error",t=403,r="\u8BF7\u6C42\u5931\u8D25",i={success:o,info:me});}catch(n){throw new Error(`[GitHub] \u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${n.message}`)}return Promise.resolve({success:o,status:s,statusCode:t,msg:r,data:i})}};});var Gt={};k(Gt,{Pull_Request:()=>re});var re,Ae=w(()=>{b();E();re=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_pull_request_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/repos/${e.owner}/${e.repo}/pulls/${e.pr_number}`);if(a.data){let o={id:a.data.id,html_url:a.data.html_url,number:a.data.number,state:a.data.state,locked:a.data.locked,title:a.data.title,body:a.data.body,draft:a.data.draft,created_at:a.data.created_at,merged_at:a.data.merged_at,updated_at:a.data.updated_at,closed_at:a.data.closed_at,user:{id:a.data.user.id,name:a.data.user.name,login:a.data.user.login,html_url:a.data.user.html_url,avatar_url:a.data.user.avatar_url},base:{label:a.data.base.label,ref:a.data.base.ref,sha:a.data.base.sha,user:{id:a.data.base.user.id,name:a.data.base.user.name,login:a.data.base.user.login,html_url:a.data.base.user.html_url,avatar_url:a.data.base.user.avatar_url},repo:{id:a.data.base.repo.id,owner:a.data.base.repo.owner,name:a.data.base.repo.name,full_name:a.data.base.repo.full_name}},head:{label:a.data.head.label,ref:a.data.head.ref,sha:a.data.head.sha,user:{id:a.data.head.user.id,name:a.data.head.user.name,login:a.data.head.user.login,html_url:a.data.head.user.html_url,avatar_url:a.data.head.user.avatar_url},repo:{id:a.data.head.repo.id,owner:a.data.head.repo.owner,name:a.data.head.repo.name,full_name:a.data.head.repo.full_name}},assignee:a.data.assignee?{id:a.data.assignee.id,name:a.data.assignee.name,login:a.data.assignee.login,html_url:a.data.assignee.html_url,avatar_url:a.data.assignee.avatar_url}:null,assignees:a.data.assignees&&a.data.assignees.length>0?a.data.assignees.map(s=>({id:s.id,name:s.name,login:s.login,html_url:s.html_url,avatar_url:s.avatar_url})):null,milestone:a.data.milestone?{id:a.data.milestone.id,url:a.data.milestone.url,number:a.data.milestone.number,state:a.data.milestone.state,title:a.data.milestone.title,description:a.data.milestone.description,open_issues:a.data.milestone.open_issues,closed_issues:a.data.milestone.closed_issues,created_at:a.data.milestone.created_at,updated_at:a.data.milestone.updated_at,due_on:a.data.milestone.due_on,closed_at:a.data.milestone.closed_at}:null,labels:a.data.labels&&a.data.labels.length>0?a.data.labels.map(s=>({id:s.id,name:s.name,color:s.color})):null,commits:a.data.commits,additions:a.data.additions,deletions:a.data.deletions,changed_files:a.data.changed_files};a.data=o;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u4FE1\u606F\u5931\u8D25\uFF1A ${a.message}`)}}async get_get_pull_request_list(e){if(!(e.owner||e.repo))throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.state&&(t.state=s.state),s.base&&(t.base=s.base),s.sort&&(t.sort=s.sort),s.direction&&!s.sort&&(t.direction=s.direction),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/pulls`,t);if(r.data){let i=r.data.map(n=>({id:n.id,html_url:n.html_url,number:n.number,state:n.state,locked:n.locked,title:n.title,body:n.body,draft:n.draft,created_at:n.created_at,updated_at:n.updated_at,closed_at:n.closed_at,merged_at:n.merged_at,user:{id:n.user.id,name:n.user.name,login:n.user.login,html_url:n.user.html_url,avatar_url:n.user.avatar_url},base:{label:n.base.label,ref:n.base.ref,sha:n.base.sha,user:{id:n.base.user.id,name:n.base.user.name,login:n.base.user.login,html_url:n.base.user.html_url,avatar_url:n.base.user.avatar_url},repo:{id:n.base.repo.id,owner:n.base.repo.owner,name:n.base.repo.name,full_name:n.base.repo.full_name}},head:{label:n.head.label,ref:n.head.ref,sha:n.head.sha,user:{id:n.head.user.id,name:n.head.user.name,login:n.head.user.login,html_url:n.head.user.html_url,avatar_url:n.head.user.avatar_url},repo:{id:n.head.repo.id,owner:n.head.repo.owner,name:n.head.repo.name,full_name:n.head.repo.full_name}},assignee:n.assignee?{id:n.assignee.id,name:n.assignee.name,login:n.assignee.login,html_url:n.assignee.html_url,avatar_url:n.assignee.avatar_url}:null,assignees:n.assignees&&n.assignees.length>0?n.assignees.map(l=>({id:l.id,name:l.name,login:l.login,html_url:l.html_url,email:l.email,avatar_url:l.avatar_url})):null,milestone:n.milestone?{id:n.milestone.id,url:n.milestone.url,number:n.milestone.number,state:n.milestone.state,title:n.milestone.title,description:n.milestone.description,open_issues:n.milestone.open_issues,closed_issues:n.milestone.closed_issues,created_at:n.milestone.created_at,updated_at:n.milestone.updated_at,closed_at:n.milestone.closed_at,due_on:n.milestone.due_on}:null,labels:n.labels&&n.labels.length>0?n.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,commits:n.commits,additions:n.additions,deletions:n.deletions,changed_files:n.changed_files}));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u5217\u8868\u5931\u8D25\uFF1A ${a.message}`)}}async create_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.head)throw new Error(lt);if(!e.base)throw new Error(ut);if(!("issue"in e)&&!("title"in e))throw new Error(at);try{this.setRequestConfig({token:this.userToken});let a={};if("issue"in e){if(!e.issue)throw new Error(tt);a.issue=e.issue;}else if("title"in e){if(!e.title)throw new Error(Be);a.title=e.title,e.body&&(a.body=e.body);}e.head&&(a.head=e.head),e.head_repo&&(a.head_repo=e.head_repo),e.base&&(a.base=e.base),e.draft&&(a.draft=e.draft);let{owner:o,repo:s}=e,t=await this.post(`/repos/${o}/${s}/pulls`,a);if(t.statusCode===403)throw new Error(_);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,state:t.data.state,locked:t.data.locked,title:t.data.title,body:t.data.body,draft:t.data.draft,created_at:t.data.created_at,merged_at:t.data.merged_at,updated_at:t.data.updated_at,closed_at:t.data.closed_at,user:{id:t.data.user.id,name:t.data.user.name,login:t.data.user.login,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url},base:{label:t.data.base.label,ref:t.data.base.ref,sha:t.data.base.sha,user:{id:t.data.base.user.id,name:t.data.base.user.name,login:t.data.base.user.login,html_url:t.data.base.user.html_url,avatar_url:t.data.base.user.avatar_url},repo:{id:t.data.base.repo.id,owner:t.data.base.repo.owner,name:t.data.base.repo.name,full_name:t.data.base.repo.full_name}},head:{label:t.data.head.label,ref:t.data.head.ref,sha:t.data.head.sha,user:{id:t.data.head.user.id,name:t.data.head.user.name,login:t.data.head.user.login,html_url:t.data.head.user.html_url,avatar_url:t.data.head.user.avatar_url},repo:{id:t.data.head.repo.id,owner:t.data.head.repo.owner,name:t.data.head.repo.name,full_name:t.data.head.repo.full_name}},assignee:t.data.assignee?{id:t.data.assignee.id,name:t.data.assignee.name,login:t.data.assignee.login,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url}:null,assignees:t.data.assignees&&t.data.assignees.length>0?t.data.assignees.map(i=>({id:i.id,name:i.name,login:i.login,html_url:i.html_url,avatar_url:i.avatar_url})):null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,due_on:t.data.milestone.due_on,closed_at:t.data.milestone.closed_at}:null,labels:t.data.labels&&t.data.labels.length>0?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,commits:t.data.commits,additions:t.data.additions,deletions:t.data.deletions,changed_files:t.data.changed_files};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async update_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};e.title&&(a.title=e.title),e.body&&(a.body=e.body),e.state&&(a.state=e.state);let{owner:o,repo:s,pr_number:t}=e,r=await this.patch(`/repos/${o}/${s}/pulls/${t}`,null,a);if(r.statusCode===403)throw new Error(_);if(r.data){let i={id:r.data.id,html_url:r.data.html_url,number:r.data.number,state:r.data.state,locked:r.data.locked,title:r.data.title,body:r.data.body,draft:r.data.draft,created_at:r.data.created_at,merged_at:r.data.merged_at,updated_at:r.data.updated_at,closed_at:r.data.closed_at,user:{id:r.data.user.id,name:r.data.user.name,login:r.data.user.login,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url},base:{label:r.data.base.label,ref:r.data.base.ref,sha:r.data.base.sha,user:{id:r.data.base.user.id,name:r.data.base.user.name,login:r.data.base.user.login,html_url:r.data.base.user.html_url,avatar_url:r.data.base.user.avatar_url},repo:{id:r.data.base.repo.id,owner:r.data.base.repo.owner,name:r.data.base.repo.name,full_name:r.data.base.repo.full_name}},head:{label:r.data.head.label,ref:r.data.head.ref,sha:r.data.head.sha,user:{id:r.data.head.user.id,name:r.data.head.user.name,login:r.data.head.user.login,html_url:r.data.head.user.html_url,avatar_url:r.data.head.user.avatar_url},repo:{id:r.data.head.repo.id,owner:r.data.head.repo.owner,name:r.data.head.repo.name,full_name:r.data.head.repo.full_name}},assignee:r.data.assignee?{id:r.data.assignee.id,name:r.data.assignee.name,login:r.data.assignee.login,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url}:null,assignees:r.data.assignees&&r.data.assignees.length>0?r.data.assignees.map(n=>({id:n.id,name:n.name,login:n.login,html_url:n.html_url,avatar_url:n.avatar_url})):null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,due_on:r.data.milestone.due_on,closed_at:r.data.milestone.closed_at}:null,labels:r.data.labels&&r.data.labels.length>0?r.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,commits:r.data.commits,additions:r.data.additions,deletions:r.data.deletions,changed_files:r.data.changed_files};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async merge_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};if(e.commit_title&&(a.commit_title=e.commit_title),e.commit_message&&(a.commit_message=e.commit_message),e.sha&&(a.sha=e.sha),e.merge_method){let i=["merge","squash","rebase"];a.merge_method=i.includes(e.merge_method)?e.merge_method:i[0];}let{owner:o,repo:s,pr_number:t}=e,r=await this.put(`/repos/${o}/${s}/pulls/${t}/merge`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z);case 405:throw new Error(dt);case 409:throw new Error(pt)}if(r.statusCode===200&&r.data){let i={sha:r.data.sha,merged:r.data.merged,message:r.data.message};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u5408\u5E76\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async get_pull_request_files_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/files`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let i=r.data.map(n=>({sha:n.sha,filename:n.filename,status:n.status,additions:n.additions,deletions:n.deletions,changes:n.changes,blob_url:n.blob_url,raw_url:n.raw_url,patch:n.patch}));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u6587\u4EF6\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_pull_request_comment_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/pulls/comments/${s}`);switch(t.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(t.data){let r={id:t.data.id,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,avatar_url:t.data.user.avatar_url,html_url:t.data.user.html_url},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_pull_request_comments_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};e.direction&&(a.direction=e.direction),e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/comments`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(r.data){let i=r.data.map(n=>({id:n.id,body:n.body,user:{id:n.user.id,login:n.user.login,name:n.user.name,html_url:n.user.html_url,avatar_url:n.user.avatar_url},created_at:n.created_at,updated_at:n.updated_at}));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,pr_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/pulls/${s}/comments`,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let i={id:r.data.id,body:r.data.body};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(W);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,body:t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${s}`,null,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let i=!1;return r.statusCode===200&&(i=!0),r.data={success:i},r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async edit_pull_request_comment(e){return await this.update_pull_request_comment(e)}async delete_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(W);try{let a=await this.delete(`/repos/${e.owner}/${e.repo}/pulls/comments/${e.comment_id}`);switch(a.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let o=!1;return a.statusCode===204&&(o=!0),a.data={success:o},a}catch(a){throw new Error(`[GitHub] \u5220\u9664\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}};});var N;exports.GitHubClient=void 0;var E=w(()=>{b();V();Ce();N="github",exports.GitHubClient=class{base_url;api_url;jwtToken;userToken;Private_Key;Client_ID;Client_Secret;WebHook_Secret;format;currentRequestConfig;proxy;constructor(e){this.Private_Key="Private_Key"in e?e.Private_Key:null,this.Client_ID="Client_ID"in e?e.Client_ID:null,this.Client_Secret="Client_Secret"in e?e.Client_Secret:null,this.WebHook_Secret="WebHook_Secret"in e?e.WebHook_Secret:null,this.validateAppClient(),this.jwtToken=this.generate_jwt(),this.base_url=q(N),this.api_url=Te(N),this.userToken="access_token"in e?e.access_token:null,this.currentRequestConfig={url:this.api_url,token:null,tokenType:"Bearer"},this.format=e.format??false;}get type(){return N}get is_app_client(){return !!(this.Client_ID&&this.Client_Secret&&this.Private_Key)}validateAppClient(){if(!this.is_app_client)return;let{Private_Key:e,Client_ID:a,Client_Secret:o}=this,s=e!==null&&e!=="",t=a!==null&&a!=="",r=o!==null&&o!=="",i=[];if(t||i.push("Client_ID"),r||i.push("Client_Secret"),s||i.push("Private_Key"),i.length!==0){if(i.length>0&&i.length<3){let n=i[0];if(n==="Client_ID")throw new Error(Ue);if(n==="Client_Secret")throw new Error(Oe);if(n==="Private_Key")throw new Error(Ne)}if(i.length===3)throw new Error(De)}}async get_app(){let{App:e}=await Promise.resolve().then(()=>(Le(),Dt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(Ee(),It));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(ke(),$t));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(ve(),xt));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(Me(),qt));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>($e(),At));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>(xe(),Lt));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(qe(),Ht));return this.webhook=new e(this),this.webhook}async get_pull_request(){let{Pull_Request:e}=await Promise.resolve().then(()=>(Ae(),Gt));return this.pull_request=new e(this),this.pull_request}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new url.URL(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(ne)}switch(e?.type){case "common":case "reverse":this.base_url=q(N,e.address,e.type),this.api_url=Te(N,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(ne)}}setToken(e){if(!e.startsWith("ghu_")&&!e.startsWith("ghp_"))throw this.userToken=null,new Error(v);return this.userToken=e,this}generate_jwt(e){let a=e??this.Private_Key;if(!this.is_app_client&&!a)throw new Error(f);let o={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return na__default.default.sign(o,a,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:o}=this.currentRequestConfig,s=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new K(e??this.api_url,o,a,s,t)}async get(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().get(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHub] GET \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async post(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().post(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] POST \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async patch(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().patch(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().put(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] PUT \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async delete(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().delete(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var Dt={};k(Dt,{App:()=>se});var se,Le=w(()=>{b();E();se=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_app_info(e){if(!this.is_app_client)throw new Error(f);let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(Fe);if(!a)throw new Error(v);try{this.setRequestConfig({token:a});let o=await this.get(`/apps/${e.app_slug}`);if(o.statusCode===200){let s={id:o.data.id,name:o.data.name,client_id:o.data.client_id,slug:o.data.slug,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,email:o.data.owner.email,html_url:o.data.owner.html_url,avatar_url:o.data.owner.avatar_url,type:lodashEs.capitalize(o.data.owner.type.toLowerCase())},description:o.data.description,external_url:o.data.external_url,html_url:o.data.html_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_app_info_by_auth(){if(!this.is_app_client)throw new Error(f);try{this.setRequestConfig({url:this.api_url,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:lodashEs.capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!this.is_app_client)throw new Error(f);if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/installation`);switch(s.statusCode){case 404:throw new Error(C);case 301:throw new Error(Je)}if(s.data){let t={id:s.data.id,html_url:s.data.html_url,app_id:s.data.app_id,app_slug:s.data.app_slug,target_id:s.data.target_id,target_type:s.data.target_type,account:{id:s.data.account.id,login:s.data.account.login,name:s.data.account.name,email:s.data.account.email,html_url:s.data.account.html_url,avatar_url:s.data.account.avatar_url,type:lodashEs.capitalize(s.data.account.type.toLowerCase())},repository_selection:s.data.repository_selection,access_tokens_url:s.data.access_tokens_url,repositories_url:s.data.repositories_url,permissions:s.data.permissions,events:s.data.events,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}async is_app_installed_in_repo(e){return !!await this.get_app_installation_by_repo({owner:e.owner,repo:e.repo})}};});b();Pe();var He={};k(He,{App:()=>se,Auth:()=>J,Commit:()=>X,GitHubClient:()=>exports.GitHubClient,Issue:()=>Q,Org:()=>te,Pull_Request:()=>re,Repo:()=>Z,User:()=>ee,WebHook:()=>ae});Le();Ee();E();ke();ve();xe();Ae();Me();$e();qe();var Ge=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new exports.GitHubClient(e.github);}};var ns=Ge;
6
- exports.Client=Ge;exports.create_state_id=ra;exports.default=ns;exports.formatDate=m;exports.get_langage_color=fe;exports.get_local_repo_default_branch=Zt;exports.get_relative_time=Qt;exports.get_remote_repo_default_branch=ye;exports.github=He;
5
+ `):null},tree:{url:u.commit.tree.url,sha:u.commit.tree.sha}},parents:u.parents.map(T=>({sha:T.sha,url:T.url})),stats:{additions:u.stats.additions,deletions:u.stats.deletions,total:u.stats.total},files:u.files.map(T=>({sha:T.sha,filename:T.filename,status:T.status,additions:T.additions,deletions:T.deletions,changes:T.changes,blob_url:T.blob_url,raw_url:T.raw_url}))}}));i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u5217\u8868\u5931\u8D25: ${a.message}`)}}};});var $t={};k($t,{Issue:()=>Q});var Q,ve=w(()=>{b();Pe();E();Q=class extends exports.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 new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.get(`/repos/${a}/${o}/issues/${Number(s)}`);switch(t.statusCode){case 404:throw new Error(P);case 301:throw new Error(et)}if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:this.format?await m(t.data.closed_at):t.data.closed_at,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_issues_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.milestone&&(t.milestone=s.milestone.toString()),s.state&&(t.state=s.state),s.assignee&&(t.assignee=s.assignee),s.creator&&(t.creator=s.creator),s.labels&&(t.labels=s.labels),s.sort&&(t.sort=s.sort),s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues`,n=await this.get(r,t);if(n.statusCode===401)throw new Error(_);if(n.data){let i=n.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:lodashEs.capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u7684\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.title)throw new Error(rt);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={...s,...s.labels&&{labels:Array.isArray(s.labels)?s.labels:[s.labels]},...s.assignees&&{assignees:Array.isArray(s.assignees)?s.assignees:[s.assignees]}},r=await this.post(`/repos/${a}/${o}/issues`,t);switch(r.statusCode){case 403:throw new Error(_);case 301:throw new Error(C)}if(r.data&&r.data){let n={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:lodashEs.capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub]\u521B\u5EFA\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},n=await this.patch(`/repos/${a}/${o}/issues/${Number(s)}`,null,r);switch(n.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(n.data&&n.data){let i={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:lodashEs.capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:lodashEs.capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6253\u5F00\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:lodashEs.capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u5173\u95ED\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,lock_reason:t}=e,r=await this.put(`/repos/${a}/${o}/issues/${Number(s)}`,{locked:!0,lock_reason:t});switch(r.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let n;return r.statusCode===204?n={info:ge}:n={info:ot},r.data=n,r}catch(a){throw new Error(`[GitHub] \u9501\u5B9A\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/${s}/lock`);switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let r;return t.statusCode===204?r={info:ge}:r={info:it},t.data=r,t}catch(a){throw new Error(`[GitHub] \u89E3\u9501\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async get_repo_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.sort&&(t.sort=s.sort),s.direction&&s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues/comments/`,n=await this.get(r,t);if(n.statusCode===404)throw new Error(R);if(n.data){let i=n.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:lodashEs.capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.since&&(r.since=t.since),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let n=`/repos/${a}/${o}/issues/${Number(s)}/comments`,i=await this.get(n,r);if(i.statusCode===404)throw new Error(R);if(i.data){let l=i.data.map(u=>({id:u.id,html_url:u.html_url,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:lodashEs.capitalize(u.user.type.toLowerCase())},created_at:u.created_at,updated_at:u.updated_at}));i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:lodashEs.capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.body)throw new Error(st);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/issues/${Number(s)}/comments`,{body:t});if(r.statusCode===404)throw new Error(R);if(r.data){let n={id:r.data.id,html_url:`${q(this.type)}/${a}/${o}/issues/${s}#${r.data.id}`,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,...t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${Number(s)}`,null,t);if(r.statusCode===404)throw new Error(R);if(r.data){let n={id:r.data.id,html_url:r.data.html_url,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);let r;return t.statusCode===204?r={info:wt}:r={info:nt},t.data=r,t}catch(a){throw new Error(`[GitHub] \u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let n=`/repos/${a}/${o}/issues/${Number(s)}/sub_issues`,i=await this.get(n,r);if(i.statusCode===404)throw new Error(P);if(i.data){let l=i.data.map(u=>({id:u.id,html_url:u.html_url,number:u.number,comments:u.comments,state:u.state,state_reason:u.state_reason,title:u.title,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:lodashEs.capitalize(u.user.type.toLowerCase())},labels:u.labels?u.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:u.assignee?{id:u.assignee.id,login:u.assignee.login,name:u.assignee.name,email:u.assignee.email,html_url:u.assignee.html_url,avatar_url:u.assignee.avatar_url,type:lodashEs.capitalize(u.assignee.type.toLowerCase())}:null,milestone:u.milestone?{id:u.milestone.id,url:u.milestone.url,number:u.milestone.number,state:u.milestone.state,title:u.milestone.title,description:u.milestone.description,open_issues:u.milestone.open_issues,closed_issues:u.milestone.closed_issues,created_at:u.milestone.created_at,updated_at:u.milestone.updated_at,closed_at:u.milestone.closed_at,due_on:u.milestone.due_on}:null,closed_at:u.closed_at,created_at:u.created_at,updated_at:u.updated_at}));i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,replace_parent:r}=e,n=await this.post(`/repos/${a}/${o}/issues/${s}/sub_issues`,{sub_issue_id:t,replace_parent:r});if(n.statusCode===404)throw new Error(P);if(n.data){let i={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:lodashEs.capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:lodashEs.capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t}=e,r=await this.delete(`/repos/${a}/${o}/issues/${s}/sub_issue`,null,{sub_issue_id:t});if(r.statusCode===404)throw new Error(P);if(r.data){let n={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:lodashEs.capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:lodashEs.capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,...r}=e,n={};r.before_id&&!r.after_id&&(n.before_id=r.before_id.toString()),r.after_id&&!r.before_id&&(n.after_id=r.after_id.toString());let i=`/repos/${a}/${o}/issues/${s}/sub_issues/priority`,l=await this.patch(i,n,{sub_issue_id:String(t)});if(l.statusCode===404)throw new Error(P);if(l.data){let u={id:l.data.id,html_url:l.data.html_url,number:l.data.number,comments:l.data.comments,state:l.data.state,state_reason:l.data.state_reason,title:l.data.title,body:l.data.body,user:{id:l.data.user.id,login:l.data.user.login,name:l.data.user.name,email:l.data.user.email,html_url:l.data.user.html_url,avatar_url:l.data.user.avatar_url,type:lodashEs.capitalize(l.data.user.type.toLowerCase())},labels:l.data.labels?l.data.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:l.data.assignee?{id:l.data.assignee.id,login:l.data.assignee.login,name:l.data.assignee.name,email:l.data.assignee.email,html_url:l.data.assignee.html_url,avatar_url:l.data.assignee.avatar_url,type:lodashEs.capitalize(l.data.assignee.type.toLowerCase())}:null,milestone:l.data.milestone?{id:l.data.milestone.id,url:l.data.milestone.url,number:l.data.milestone.number,state:l.data.milestone.state,title:l.data.milestone.title,description:l.data.milestone.description,open_issues:l.data.milestone.open_issues,closed_issues:l.data.milestone.closed_issues,created_at:l.data.milestone.created_at,updated_at:l.data.milestone.updated_at,closed_at:l.data.milestone.closed_at,due_on:l.data.milestone.due_on}:null,closed_at:l.data.closed_at,created_at:l.data.created_at,updated_at:l.data.updated_at};l.data=u;}return l}catch(a){throw new Error(`[GitHub] \u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var qt={};k(qt,{Repo:()=>Z});var Z,Me=w(()=>{b();E();Z=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_repos_list(e){if(!e.org)throw new Error(G);try{this.setRequestConfig({token:this.userToken});let{org:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/orgs/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(G);case 401:throw new Error(y)}if(r.data){let n=await Promise.all(r.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name??null,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email??null},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:this.format?await m(i.created_at):i.created_at,updated_at:this.format?await m(i.updated_at):i.updated_at,pushed_at:this.format?await m(i.pushed_at):i.pushed_at})));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,o={};!e?.visibility&&!e?.affiliation&&a?.type&&(o.type=a.type),a?.visibility&&(o.visibility=a.visibility),a?.affiliation&&(o.affiliation=a.affiliation),a?.sort&&(o.sort=a.sort),a?.direction&&(o.direction=a.direction),a?.per_page&&(o.per_page=a.per_page.toString()),a?.page&&(o.page=a.page.toString());let t=await this.get("/uses/repos",o);if(t.statusCode===401)throw new Error(y);if(t.data){let r=await Promise.all(t.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:this.format?await m(n.created_at):n.created_at,updated_at:this.format?await m(n.updated_at):n.updated_at,pushed_at:this.format?await m(n.pushed_at):n.pushed_at})));t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error(x);this.setRequestConfig({token:this.userToken});let{username:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/users/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(H);case 401:throw new Error(y)}if(r.data){let n=await Promise.all(r.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:this.format?await m(i.created_at):i.created_at,updated_at:this.format?await m(i.updated_at):i.updated_at,pushed_at:this.format?await m(i.pushed_at):i.pushed_at})));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(D)}if(s.data){let t={id:s.data.id,name:s.data.name,full_name:s.data.full_name,owner:{id:s.data.owner.id,login:s.data.owner.login,name:s.data.owner.name,avatar_url:s.data.owner.avatar_url,type:s.data.owner.type,html_url:s.data.owner.html_url,email:s.data.owner.email},public:!s.data.private,private:s.data.private,visibility:s.data.private?"private":"public",fork:s.data.fork,archived:s.data.archived,disabled:s.data.disabled,html_url:s.data.html_url,description:s.data.description,stargazers_count:s.data.stargazers_count,watchers_count:s.data.watchers_count,language:s.data.language,forks_count:s.data.forks_count,open_issues_count:s.data.open_issues_count,default_branch:s.data.default_branch,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at,pushed_at:this.format?await m(s.data.pushed_at):s.data.pushed_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/languages`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(C)}if(s.data){let t=Object.entries(s.data),r=t.reduce((l,[,u])=>l+u,0),i={languages:t.map(([l,u])=>({language:l,color:fe(l.toLowerCase()),percent:Number((u/r*100).toFixed(2)),bytes:u}))};s.data=i;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{org:a,...o}=e;if(!a||!e.name)throw new Error(Ze);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility&&(s.private=o.visibility.toString()),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post(`/orgs/${a}/repos`,s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_user_repo(e){try{let{owner:a,...o}=e;if(!a||!e.name)throw new Error(p);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility==="private"&&(s.private=!0),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post("/user/repos",s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7528\u6237\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_repo(e){return this.create_user_repo(e)}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,{...s}=e,t={};s.affiliation&&(t.milestone=s.affiliation.toString()),s.permission&&(t.permission=s.permission.toString()),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/collaborators`,t);if(r.data){let n=await Promise.all(r.data.map(i=>({id:i.id,login:i.login,avatar_url:i.avatar_url,email:i.email,name:i.name,permissions:i.permissions,role_name:i.role_name})));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.put(`/repos/${a}/${o}/collaborators/${s}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(y);if(t.statusCode===422){let r=t.data.message;if(r&&r.includes("is not a valid permission"))throw new Error(_)}if(t.data){let r={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.delete(`/repos/${a}/${o}/collaborators/${s}`);if(t.statusCode===404)throw new Error(y);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u5931\u8D25`},t}catch(a){throw new Error(`[GitHub] \u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.visibility}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e,s;try{let t=this.base_url+"/"+a+"/"+o;s=await ye(t);}catch{s=(await this.get_repo_info({owner:a,repo:o})).data.default_branch;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.language}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var At={};k(At,{User:()=>ee});var ee,xe=w(()=>{b();E();ee=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(D);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:a});let o=await this.get(`/users/${e.username}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(D);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:lodashEs.capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Xe);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/user/${e.user_id}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(H);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:lodashEs.capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_auth(){if(!this.userToken)throw new Error(v);try{this.setRequestConfig({token:this.userToken});let e=await this.get("/user");switch(e.statusCode){case 401:throw new Error(_);case 404:throw new Error(H)}if(e.data){let a={id:e.data.id,login:e.data.login,name:e.data.name||null,type:lodashEs.capitalize(e.data.type.toLowerCase()),html_url:e.data.html_url,avatar_url:e.data.avatar_url,email:e.data.email||null,bio:e.data.bio||null,blog:e.data.blog||null,public_repos:e.data.public_repos,followers:e.data.followers,following:e.data.following};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_user_info_by_token(){return this.get_user_info_by_auth()}async get_user_contribution(e){try{if(!e.username)throw new Error(x);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${Qe}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.base_url});let o=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(!o.success)throw new Error("\u83B7\u53D6\u7528\u6237\u8D21\u732E\u6570\u636E\u5931\u8D25");if(o.statusCode===404)throw new Error(x);let s=await kt(o.data);return {...o,data:s}}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var Lt={};k(Lt,{Org:()=>te});var te,$e=w(()=>{b();V();E();te=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_info(e){if(!e.org)throw new Error(de);let{org:a}=e;try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/orgs/${a}`);if(o.statusCode===404)throw new Error(G);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name,avatar_url:o.data.avatar_url,description:o.data.description,html_url:o.data.html_url};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async add_member(e){if(!e.org)throw new Error(de);if(!e.username)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a,o,{org:s,username:t,role:r}=e;if(t){let l=await this.get_user();try{a=await l.get_user_id();}catch{o=await l.get_user_email();}}let n={};a?n.invitee_id=a:o&&(n.email=o),r==="admin"?n.role="admin":n.role="direct_member";let i=await this.post(`/orgs/${s}/invitations`,n);if(i.statusCode===404)throw new Error(y);if(i.statusCode===422){let l=i.data.message;if(l&&l.includes("is not a valid permission"))throw new Error(_)}if(i.data){let l={id:i.data.inviter.id,login:i.data.inviterlogin,name:i.data.inviter.name,html_url:`${q(this.type)}/${s}`,role:r};i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u7EC4\u7EC7\u6210\u5458\u5931\u8D25: ${a.message}`)}}};});var Ht={};k(Ht,{WebHook:()=>ae});var ae,qe=w(()=>{b();E();ae=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a)throw new Error(ct);if(!e.payload)throw new Error(_t);if(!e.signature)throw new Error(gt);if(!e.signature.startsWith("sha256="))throw new Error(mt);let o=false,s="error",t=400,r=me,n;try{let i=St__default.default.createHmac("sha256",a),l=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);i.update(l,"utf8");let u=i.digest("hex"),c=e.signature.replace("sha256=","");St__default.default.timingSafeEqual(Buffer.from(u),Buffer.from(c))?(o=!0,s="ok",t=200,r="\u8BF7\u6C42\u6210\u529F",n={success:o,info:yt}):(o=!1,s="error",t=403,r="\u8BF7\u6C42\u5931\u8D25",n={success:o,info:me});}catch(i){throw new Error(`[GitHub] \u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${i.message}`)}return Promise.resolve({success:o,status:s,statusCode:t,msg:r,data:n})}};});var Gt={};k(Gt,{Pull_Request:()=>re});var re,Ae=w(()=>{b();E();re=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_pull_request_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/repos/${e.owner}/${e.repo}/pulls/${e.pr_number}`);if(a.data){let o={id:a.data.id,html_url:a.data.html_url,number:a.data.number,state:a.data.state,locked:a.data.locked,title:a.data.title,body:a.data.body,draft:a.data.draft,created_at:a.data.created_at,merged_at:a.data.merged_at,updated_at:a.data.updated_at,closed_at:a.data.closed_at,user:{id:a.data.user.id,name:a.data.user.name,login:a.data.user.login,html_url:a.data.user.html_url,avatar_url:a.data.user.avatar_url},base:{label:a.data.base.label,ref:a.data.base.ref,sha:a.data.base.sha,user:{id:a.data.base.user.id,name:a.data.base.user.name,login:a.data.base.user.login,html_url:a.data.base.user.html_url,avatar_url:a.data.base.user.avatar_url},repo:{id:a.data.base.repo.id,owner:a.data.base.repo.owner,name:a.data.base.repo.name,full_name:a.data.base.repo.full_name}},head:{label:a.data.head.label,ref:a.data.head.ref,sha:a.data.head.sha,user:{id:a.data.head.user.id,name:a.data.head.user.name,login:a.data.head.user.login,html_url:a.data.head.user.html_url,avatar_url:a.data.head.user.avatar_url},repo:{id:a.data.head.repo.id,owner:a.data.head.repo.owner,name:a.data.head.repo.name,full_name:a.data.head.repo.full_name}},assignee:a.data.assignee?{id:a.data.assignee.id,name:a.data.assignee.name,login:a.data.assignee.login,html_url:a.data.assignee.html_url,avatar_url:a.data.assignee.avatar_url}:null,assignees:a.data.assignees&&a.data.assignees.length>0?a.data.assignees.map(s=>({id:s.id,name:s.name,login:s.login,html_url:s.html_url,avatar_url:s.avatar_url})):null,milestone:a.data.milestone?{id:a.data.milestone.id,url:a.data.milestone.url,number:a.data.milestone.number,state:a.data.milestone.state,title:a.data.milestone.title,description:a.data.milestone.description,open_issues:a.data.milestone.open_issues,closed_issues:a.data.milestone.closed_issues,created_at:a.data.milestone.created_at,updated_at:a.data.milestone.updated_at,due_on:a.data.milestone.due_on,closed_at:a.data.milestone.closed_at}:null,labels:a.data.labels&&a.data.labels.length>0?a.data.labels.map(s=>({id:s.id,name:s.name,color:s.color})):null,commits:a.data.commits,additions:a.data.additions,deletions:a.data.deletions,changed_files:a.data.changed_files};a.data=o;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u4FE1\u606F\u5931\u8D25\uFF1A ${a.message}`)}}async get_get_pull_request_list(e){if(!(e.owner||e.repo))throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.state&&(t.state=s.state),s.base&&(t.base=s.base),s.sort&&(t.sort=s.sort),s.direction&&!s.sort&&(t.direction=s.direction),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/pulls`,t);if(r.data){let n=r.data.map(i=>({id:i.id,html_url:i.html_url,number:i.number,state:i.state,locked:i.locked,title:i.title,body:i.body,draft:i.draft,created_at:i.created_at,updated_at:i.updated_at,closed_at:i.closed_at,merged_at:i.merged_at,user:{id:i.user.id,name:i.user.name,login:i.user.login,html_url:i.user.html_url,avatar_url:i.user.avatar_url},base:{label:i.base.label,ref:i.base.ref,sha:i.base.sha,user:{id:i.base.user.id,name:i.base.user.name,login:i.base.user.login,html_url:i.base.user.html_url,avatar_url:i.base.user.avatar_url},repo:{id:i.base.repo.id,owner:i.base.repo.owner,name:i.base.repo.name,full_name:i.base.repo.full_name}},head:{label:i.head.label,ref:i.head.ref,sha:i.head.sha,user:{id:i.head.user.id,name:i.head.user.name,login:i.head.user.login,html_url:i.head.user.html_url,avatar_url:i.head.user.avatar_url},repo:{id:i.head.repo.id,owner:i.head.repo.owner,name:i.head.repo.name,full_name:i.head.repo.full_name}},assignee:i.assignee?{id:i.assignee.id,name:i.assignee.name,login:i.assignee.login,html_url:i.assignee.html_url,avatar_url:i.assignee.avatar_url}:null,assignees:i.assignees&&i.assignees.length>0?i.assignees.map(l=>({id:l.id,name:l.name,login:l.login,html_url:l.html_url,email:l.email,avatar_url:l.avatar_url})):null,milestone:i.milestone?{id:i.milestone.id,url:i.milestone.url,number:i.milestone.number,state:i.milestone.state,title:i.milestone.title,description:i.milestone.description,open_issues:i.milestone.open_issues,closed_issues:i.milestone.closed_issues,created_at:i.milestone.created_at,updated_at:i.milestone.updated_at,closed_at:i.milestone.closed_at,due_on:i.milestone.due_on}:null,labels:i.labels&&i.labels.length>0?i.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,commits:i.commits,additions:i.additions,deletions:i.deletions,changed_files:i.changed_files}));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u5217\u8868\u5931\u8D25\uFF1A ${a.message}`)}}async create_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.head)throw new Error(lt);if(!e.base)throw new Error(ut);if(!("issue"in e)&&!("title"in e))throw new Error(at);try{this.setRequestConfig({token:this.userToken});let a={};if("issue"in e){if(!e.issue)throw new Error(tt);a.issue=e.issue;}else if("title"in e){if(!e.title)throw new Error(We);a.title=e.title,e.body&&(a.body=e.body);}e.head&&(a.head=e.head),e.head_repo&&(a.head_repo=e.head_repo),e.base&&(a.base=e.base),e.draft&&(a.draft=e.draft);let{owner:o,repo:s}=e,t=await this.post(`/repos/${o}/${s}/pulls`,a);if(t.statusCode===403)throw new Error(_);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,state:t.data.state,locked:t.data.locked,title:t.data.title,body:t.data.body,draft:t.data.draft,created_at:t.data.created_at,merged_at:t.data.merged_at,updated_at:t.data.updated_at,closed_at:t.data.closed_at,user:{id:t.data.user.id,name:t.data.user.name,login:t.data.user.login,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url},base:{label:t.data.base.label,ref:t.data.base.ref,sha:t.data.base.sha,user:{id:t.data.base.user.id,name:t.data.base.user.name,login:t.data.base.user.login,html_url:t.data.base.user.html_url,avatar_url:t.data.base.user.avatar_url},repo:{id:t.data.base.repo.id,owner:t.data.base.repo.owner,name:t.data.base.repo.name,full_name:t.data.base.repo.full_name}},head:{label:t.data.head.label,ref:t.data.head.ref,sha:t.data.head.sha,user:{id:t.data.head.user.id,name:t.data.head.user.name,login:t.data.head.user.login,html_url:t.data.head.user.html_url,avatar_url:t.data.head.user.avatar_url},repo:{id:t.data.head.repo.id,owner:t.data.head.repo.owner,name:t.data.head.repo.name,full_name:t.data.head.repo.full_name}},assignee:t.data.assignee?{id:t.data.assignee.id,name:t.data.assignee.name,login:t.data.assignee.login,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url}:null,assignees:t.data.assignees&&t.data.assignees.length>0?t.data.assignees.map(n=>({id:n.id,name:n.name,login:n.login,html_url:n.html_url,avatar_url:n.avatar_url})):null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,due_on:t.data.milestone.due_on,closed_at:t.data.milestone.closed_at}:null,labels:t.data.labels&&t.data.labels.length>0?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,commits:t.data.commits,additions:t.data.additions,deletions:t.data.deletions,changed_files:t.data.changed_files};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async update_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};e.title&&(a.title=e.title),e.body&&(a.body=e.body),e.state&&(a.state=e.state);let{owner:o,repo:s,pr_number:t}=e,r=await this.patch(`/repos/${o}/${s}/pulls/${t}`,null,a);if(r.statusCode===403)throw new Error(_);if(r.data){let n={id:r.data.id,html_url:r.data.html_url,number:r.data.number,state:r.data.state,locked:r.data.locked,title:r.data.title,body:r.data.body,draft:r.data.draft,created_at:r.data.created_at,merged_at:r.data.merged_at,updated_at:r.data.updated_at,closed_at:r.data.closed_at,user:{id:r.data.user.id,name:r.data.user.name,login:r.data.user.login,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url},base:{label:r.data.base.label,ref:r.data.base.ref,sha:r.data.base.sha,user:{id:r.data.base.user.id,name:r.data.base.user.name,login:r.data.base.user.login,html_url:r.data.base.user.html_url,avatar_url:r.data.base.user.avatar_url},repo:{id:r.data.base.repo.id,owner:r.data.base.repo.owner,name:r.data.base.repo.name,full_name:r.data.base.repo.full_name}},head:{label:r.data.head.label,ref:r.data.head.ref,sha:r.data.head.sha,user:{id:r.data.head.user.id,name:r.data.head.user.name,login:r.data.head.user.login,html_url:r.data.head.user.html_url,avatar_url:r.data.head.user.avatar_url},repo:{id:r.data.head.repo.id,owner:r.data.head.repo.owner,name:r.data.head.repo.name,full_name:r.data.head.repo.full_name}},assignee:r.data.assignee?{id:r.data.assignee.id,name:r.data.assignee.name,login:r.data.assignee.login,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url}:null,assignees:r.data.assignees&&r.data.assignees.length>0?r.data.assignees.map(i=>({id:i.id,name:i.name,login:i.login,html_url:i.html_url,avatar_url:i.avatar_url})):null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,due_on:r.data.milestone.due_on,closed_at:r.data.milestone.closed_at}:null,labels:r.data.labels&&r.data.labels.length>0?r.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,commits:r.data.commits,additions:r.data.additions,deletions:r.data.deletions,changed_files:r.data.changed_files};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async merge_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};if(e.commit_title&&(a.commit_title=e.commit_title),e.commit_message&&(a.commit_message=e.commit_message),e.sha&&(a.sha=e.sha),e.merge_method){let n=["merge","squash","rebase"];a.merge_method=n.includes(e.merge_method)?e.merge_method:n[0];}let{owner:o,repo:s,pr_number:t}=e,r=await this.put(`/repos/${o}/${s}/pulls/${t}/merge`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z);case 405:throw new Error(dt);case 409:throw new Error(pt)}if(r.statusCode===200&&r.data){let n={sha:r.data.sha,merged:r.data.merged,message:r.data.message};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u5408\u5E76\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async get_pull_request_files_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/files`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let n=r.data.map(i=>({sha:i.sha,filename:i.filename,status:i.status,additions:i.additions,deletions:i.deletions,changes:i.changes,blob_url:i.blob_url,raw_url:i.raw_url,patch:i.patch}));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u6587\u4EF6\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_pull_request_comment_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/pulls/comments/${s}`);switch(t.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(t.data){let r={id:t.data.id,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,avatar_url:t.data.user.avatar_url,html_url:t.data.user.html_url},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_pull_request_comments_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};e.direction&&(a.direction=e.direction),e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/comments`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(r.data){let n=r.data.map(i=>({id:i.id,body:i.body,user:{id:i.user.id,login:i.user.login,name:i.user.name,html_url:i.user.html_url,avatar_url:i.user.avatar_url},created_at:i.created_at,updated_at:i.updated_at}));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,pr_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/pulls/${s}/comments`,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let n={id:r.data.id,body:r.data.body};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(B);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,body:t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${s}`,null,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let n=!1;return r.statusCode===200&&(n=!0),r.data={success:n},r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async edit_pull_request_comment(e){return await this.update_pull_request_comment(e)}async delete_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(B);try{let a=await this.delete(`/repos/${e.owner}/${e.repo}/pulls/comments/${e.comment_id}`);switch(a.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let o=!1;return a.statusCode===204&&(o=!0),a.data={success:o},a}catch(a){throw new Error(`[GitHub] \u5220\u9664\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}};});var N;exports.GitHubClient=void 0;var E=w(()=>{b();V();Ce();N="github",exports.GitHubClient=class{base_url;api_url;jwtToken;userToken;Private_Key;Client_ID;Client_Secret;WebHook_Secret;format;currentRequestConfig;proxy;constructor(e){this.Private_Key="Private_Key"in e?e.Private_Key:null,this.Client_ID="Client_ID"in e?e.Client_ID:null,this.Client_Secret="Client_Secret"in e?e.Client_Secret:null,this.WebHook_Secret="WebHook_Secret"in e?e.WebHook_Secret:null,this.validateAppClient(),this.jwtToken=this.generate_jwt(),this.base_url=q(N),this.api_url=Te(N),this.userToken="access_token"in e?e.access_token:null,this.currentRequestConfig={url:this.api_url,token:null,tokenType:"Bearer"},this.format=e.format??false;}get type(){return N}get is_app_client(){return !!(this.Client_ID&&this.Client_Secret&&this.Private_Key)}validateAppClient(){if(!this.is_app_client)return;let{Private_Key:e,Client_ID:a,Client_Secret:o}=this,s=e!==null&&e!=="",t=a!==null&&a!=="",r=o!==null&&o!=="",n=[];if(t||n.push("Client_ID"),r||n.push("Client_Secret"),s||n.push("Private_Key"),n.length!==0){if(n.length>0&&n.length<3){let i=n[0];if(i==="Client_ID")throw new Error(Ue);if(i==="Client_Secret")throw new Error(Oe);if(i==="Private_Key")throw new Error(Ne)}if(n.length===3)throw new Error(De)}}async get_app(){let{App:e}=await Promise.resolve().then(()=>(Le(),Dt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(Ee(),It));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(ke(),xt));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(ve(),$t));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(Me(),qt));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>(xe(),At));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>($e(),Lt));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(qe(),Ht));return this.webhook=new e(this),this.webhook}async get_pull_request(){let{Pull_Request:e}=await Promise.resolve().then(()=>(Ae(),Gt));return this.pull_request=new e(this),this.pull_request}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new url.URL(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(ne)}switch(e?.type){case "common":case "reverse":this.base_url=q(N,e.address,e.type),this.api_url=Te(N,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(ne)}}setToken(e){if(!e.startsWith("ghu_")&&!e.startsWith("ghp_"))throw this.userToken=null,new Error(v);this.userToken=e;}generate_jwt(e){let a=e??this.Private_Key;if(!this.is_app_client&&!a)throw new Error(f);let o={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return ia__default.default.sign(o,a,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:o}=this.currentRequestConfig,s=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new K(e??this.api_url,o,a,s,t)}async get(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().get(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHub] GET \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async post(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().post(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] POST \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async patch(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().patch(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().put(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] PUT \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async delete(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().delete(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var Dt={};k(Dt,{App:()=>se});var se,Le=w(()=>{b();E();se=class extends exports.GitHubClient{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_app_info(e){if(!this.is_app_client)throw new Error(f);let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(Fe);if(!a)throw new Error(v);try{this.setRequestConfig({token:a});let o=await this.get(`/apps/${e.app_slug}`);if(o.statusCode===200){let s={id:o.data.id,name:o.data.name,client_id:o.data.client_id,slug:o.data.slug,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,email:o.data.owner.email,html_url:o.data.owner.html_url,avatar_url:o.data.owner.avatar_url,type:lodashEs.capitalize(o.data.owner.type.toLowerCase())},description:o.data.description,external_url:o.data.external_url,html_url:o.data.html_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_app_info_by_auth(){if(!this.is_app_client)throw new Error(f);try{this.setRequestConfig({url:this.api_url,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:lodashEs.capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!this.is_app_client)throw new Error(f);if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/installation`);switch(s.statusCode){case 404:throw new Error(C);case 301:throw new Error(Je)}if(s.data){let t={id:s.data.id,html_url:s.data.html_url,app_id:s.data.app_id,app_slug:s.data.app_slug,target_id:s.data.target_id,target_type:s.data.target_type,account:{id:s.data.account.id,login:s.data.account.login,name:s.data.account.name,email:s.data.account.email,html_url:s.data.account.html_url,avatar_url:s.data.account.avatar_url,type:lodashEs.capitalize(s.data.account.type.toLowerCase())},repository_selection:s.data.repository_selection,access_tokens_url:s.data.access_tokens_url,repositories_url:s.data.repositories_url,permissions:s.data.permissions,events:s.data.events,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}async is_app_installed_in_repo(e){return !!await this.get_app_installation_by_repo({owner:e.owner,repo:e.repo})}};});b();Pe();var He={};k(He,{App:()=>se,Auth:()=>J,Commit:()=>X,GitHubClient:()=>exports.GitHubClient,Issue:()=>Q,Org:()=>te,Pull_Request:()=>re,Repo:()=>Z,User:()=>ee,WebHook:()=>ae});Le();Ee();E();ke();ve();$e();Ae();Me();xe();qe();var Ge=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new exports.GitHubClient(e.github);}};var os=Ge;
6
+ exports.Client=Ge;exports.create_state_id=aa;exports.default=os;exports.formatDate=m;exports.get_langage_color=fe;exports.get_local_repo_default_branch=Qt;exports.get_relative_time=Xt;exports.get_remote_repo_default_branch=ye;exports.github=He;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { RawAxiosResponseHeaders, AxiosResponseHeaders } from 'axios';
2
+ import { ExecException, exec } from 'child_process';
2
3
 
3
4
  /** 代理地址类型 */
4
5
  type ProxyUrlType = string;
@@ -114,6 +115,34 @@ interface ContributionResult {
114
115
  */
115
116
  contributions: ContributionData[][];
116
117
  }
118
+ /**
119
+ * 执行 shell 命令返回类型
120
+ */
121
+ interface ExecType {
122
+ /** 是否执行成功 */
123
+ status: boolean;
124
+ /** 错误对象,如果命令执行失败则包含错误信息 */
125
+ error: ExecException | null;
126
+ /** 标准错误输出 */
127
+ stderr: string;
128
+ /** 标准输出 */
129
+ stdout: string;
130
+ }
131
+ /**
132
+ * 执行 shell 命令返回类型泛型
133
+ */
134
+ type ExecReturn<K extends boolean> = K extends true ? boolean : ExecType;
135
+ /**
136
+ * 执行 shell 命令参数
137
+ */
138
+ type ExecOptions<T extends boolean> = Parameters<typeof exec>[1] & {
139
+ /** 是否打印日志 默认不打印 */
140
+ log?: boolean;
141
+ /** 是否只返回布尔值 表示命令是否成功执行 优先级比抛错误高 */
142
+ booleanResult?: T;
143
+ /** 是否去除日志中的换行符 默认不去除 */
144
+ trim?: boolean;
145
+ };
117
146
 
118
147
  interface AccessTokenType {
119
148
  /** 访问令牌 */
@@ -2711,10 +2740,8 @@ declare class Repo extends GitHubClient {
2711
2740
  * 权限:
2712
2741
  * - Metadata: Read-only, 如果只获取公开仓库可无需此权限
2713
2742
  * @param options
2714
- * - url 仓库URL地址
2715
2743
  * - owner 仓库拥有者
2716
2744
  * - repo 仓库名称
2717
- * url参数和owner、repo参数传入其中的一种
2718
2745
  * @example
2719
2746
  * ```ts
2720
2747
  * const defaultBranch = await repo.get_repo_default_branch({owner: CandriaJS, repo: meme-plugin)}
@@ -3055,7 +3082,7 @@ declare class GitHubClient {
3055
3082
  * setToken('ghu_xxxx')
3056
3083
  * ```
3057
3084
  */
3058
- setToken(token: string): this;
3085
+ setToken(token: string): void;
3059
3086
  /**
3060
3087
  * 生成 JWT Token
3061
3088
  * @param options 生成 JWT 所需的参数
@@ -3245,4 +3272,4 @@ declare class Client {
3245
3272
  constructor(options: ClientType);
3246
3273
  }
3247
3274
 
3248
- export { type AccessCodeType, type AccessTokenClentTYpe, type AccessTokenType, type AddCollaboratorResponseType, type AddMemberParamType, type AddMemberResponseType, type AddSubIssueParamType, type AddSubIssueResponseType, type ApiResponseType, type AppClientType, type AppInfoParamType, type AppInfoResponseType, type AppPermissions, type AppRepoInfoResponseType, type AppUser, type CheckTokenResponseType, Client, type ClientType, type CloseIssueParamType, type CloseIssueResponseType, type CollaboratorInfoResponseType, type CollaboratorListParamType, type CollaboratorListResponseType, type CollaboratorParamType, type CommentIdParamType, type Commit$1 as Commit, type CommitInfoCommonParamType, type CommitInfoParamType, type CommitInfoResponseType, type CommitListParamType, type CommitListResponseType, type CommitStats, type CommonProxyType, type ContributionData, type ContributionResult, type CreateIssueResponseType, type CreatePullRequestCommentParamType, type CreatePullRequestCommentResponseType, type CreatePullRequestParamType, type CreatePullRequestResponseType, type CreateReleaseParamType, type CreateReleaseResponseType, type CreteIssueCommentParamType, type CreteIssueCommentResponseType, type CreteIssueParamType, type DeletePullRequestCommentParamType, type DeletePullRequestCommentResponseType, type DeleteReleaseParamType, type DeleteReleaseResponseType, type DiffEntry, type GetPullRequestCommentInfoParamType, type GetPullRequestCommentInfoResponseType, type GetPullRequestCommentsListParamType, type GetPullRequestCommentsListResponseType, type GetPullRequestFilesListParamType, type GetPullRequestFilesListResponseType, type GetRepoDefaultBranchParamType, type GetRepoDefaultBranchResponseType, type GetRepoMainLanguageParamType, type GetRepoMainLanguageResponseType, type GetRepoVisibilityParamType, type GetRepoVisibilityResponseType, type GitHubBaseClient, GitHubClient, type GitHubClientType, type GitType, type GitUser, type HttpProxyType, type HttpsProxyType, type IssueCommentInfoParamType, type IssueCommentInfoResponseType, type IssueCommentListParamType, type IssueCommentListResponseType, type IssueInfoParamType, type IssueInfoResponseType, type IssueLabelType, type IssueListResponseType, type IssueNumberParamType, type IssueUser, type LanguageInfo, type LockIssueParamType, type LockIssueResponseType, type MergeMethodType, type MergePullRequestParamType, type MergePullRequestResponseType, type MilestoneType, type OpenIssueParamType, type OpenIssueResponseType, type OrgInfoParamType, type OrgInfoResponseType, type OrgNameParamType, type OrgRepoCreateParamType, type OrgRepoCreateResponseType, type OrgRepoListParmType, type OrgRepoListResponseType, type ParentCommit, type PkgInfoType, type PrRepo, type PrUser, type ProxyParamsType, type ProxyType, type ProxyUrlType, type PullRequestFilesListType, type PullRequestInfoParamType, type PullRequestInfoResponseType, type PullRequestListParamType, type PullRequestListResponseType, type PullRequestNumberParamType, type ReactionInfoType, type RefreshTokenResponseType, type RefreshTokenType, type ReleaseAssetsType, type ReleaseInfoByTagParamType, type ReleaseInfoByTagResponseType, type ReleaseInfoParamType, type ReleaseInfoResponseType, type ReleaseLatestParamTypeType, type ReleaseLatestResponseType, type ReleaseListParamType, type ReleaseListResponseType, type ReleaseUser, type RemoveCollaboratorParamType, type RemoveCollaboratorResponseType, type RemoveIssueCommentParamType, type RemoveIssueCommentResponseType, type RemoveSubIssueParamType, type RemoveSubIssueResponseType, type RepoBaseParamType, type RepoCommentListParamType, type RepoCommentListResponseType, type RepoInfoParamType, type RepoInfoResponseType, type RepoIssueListParamType, type RepoLanguagesListParamType, type RepoLanguagesListResponseType, type RepoListBaseParamType, type RepoNameParamType, type RepoOwnerParamType, type RepoParamType, type RepoUrlParamType, type RepoUser, type ReprioritizeSubIssueParamType, type ReprioritizeSubIssueResponseType, type RequestConfigType, type RequestTokenType, type ResponseHeadersType, type ResponseMsgType, type ResponseStatusCodeType, type ResponseSuccessType, type ResponseType, type ReverseProxyType, type ShaParamType, type Socks5ProxyType, type SocksProxyType, type SubIssueListParamType, type SubIssueListResponseType, type TokenResponseType, type UnLockIssueParamType, type UnLockIssueResponseType, type UpdateIssueCommentParamType, type UpdateIssueCommentResponseType, type UpdateIssueParamType, type UpdateIssueResponseType, type UpdatePullRequestCommentParamType, type UpdatePullRequestCommentResponseType, type UpdatePullRequestParamType, type UpdatePullRequestResponseType, type UpdateReleaseParamType, type UpdateReleaseResponseType, type UserByTokenRepoListParamType, type UserIdParamType, type UserInfoByAuthParamType, type UserInfoByIdParamType, type UserInfoParamType, type UserInfoResponseType, type UserNameParamType, type UserRepoCreateParamType, type UserRepoCreateResponseType, type UserRepoListParamType, type UserRepoListType, type WebHookSignatureParamType, type WebHookSignatureResponseType, create_state_id, Client as default, formatDate, type formatParamType, get_langage_color, get_local_repo_default_branch, get_relative_time, get_remote_repo_default_branch, index as github };
3275
+ export { type AccessCodeType, type AccessTokenClentTYpe, type AccessTokenType, type AddCollaboratorResponseType, type AddMemberParamType, type AddMemberResponseType, type AddSubIssueParamType, type AddSubIssueResponseType, type ApiResponseType, type AppClientType, type AppInfoParamType, type AppInfoResponseType, type AppPermissions, type AppRepoInfoResponseType, type AppUser, type CheckTokenResponseType, Client, type ClientType, type CloseIssueParamType, type CloseIssueResponseType, type CollaboratorInfoResponseType, type CollaboratorListParamType, type CollaboratorListResponseType, type CollaboratorParamType, type CommentIdParamType, type Commit$1 as Commit, type CommitInfoCommonParamType, type CommitInfoParamType, type CommitInfoResponseType, type CommitListParamType, type CommitListResponseType, type CommitStats, type CommonProxyType, type ContributionData, type ContributionResult, type CreateIssueResponseType, type CreatePullRequestCommentParamType, type CreatePullRequestCommentResponseType, type CreatePullRequestParamType, type CreatePullRequestResponseType, type CreateReleaseParamType, type CreateReleaseResponseType, type CreteIssueCommentParamType, type CreteIssueCommentResponseType, type CreteIssueParamType, type DeletePullRequestCommentParamType, type DeletePullRequestCommentResponseType, type DeleteReleaseParamType, type DeleteReleaseResponseType, type DiffEntry, type ExecOptions, type ExecReturn, type ExecType, type GetPullRequestCommentInfoParamType, type GetPullRequestCommentInfoResponseType, type GetPullRequestCommentsListParamType, type GetPullRequestCommentsListResponseType, type GetPullRequestFilesListParamType, type GetPullRequestFilesListResponseType, type GetRepoDefaultBranchParamType, type GetRepoDefaultBranchResponseType, type GetRepoMainLanguageParamType, type GetRepoMainLanguageResponseType, type GetRepoVisibilityParamType, type GetRepoVisibilityResponseType, type GitHubBaseClient, GitHubClient, type GitHubClientType, type GitType, type GitUser, type HttpProxyType, type HttpsProxyType, type IssueCommentInfoParamType, type IssueCommentInfoResponseType, type IssueCommentListParamType, type IssueCommentListResponseType, type IssueInfoParamType, type IssueInfoResponseType, type IssueLabelType, type IssueListResponseType, type IssueNumberParamType, type IssueUser, type LanguageInfo, type LockIssueParamType, type LockIssueResponseType, type MergeMethodType, type MergePullRequestParamType, type MergePullRequestResponseType, type MilestoneType, type OpenIssueParamType, type OpenIssueResponseType, type OrgInfoParamType, type OrgInfoResponseType, type OrgNameParamType, type OrgRepoCreateParamType, type OrgRepoCreateResponseType, type OrgRepoListParmType, type OrgRepoListResponseType, type ParentCommit, type PkgInfoType, type PrRepo, type PrUser, type ProxyParamsType, type ProxyType, type ProxyUrlType, type PullRequestFilesListType, type PullRequestInfoParamType, type PullRequestInfoResponseType, type PullRequestListParamType, type PullRequestListResponseType, type PullRequestNumberParamType, type ReactionInfoType, type RefreshTokenResponseType, type RefreshTokenType, type ReleaseAssetsType, type ReleaseInfoByTagParamType, type ReleaseInfoByTagResponseType, type ReleaseInfoParamType, type ReleaseInfoResponseType, type ReleaseLatestParamTypeType, type ReleaseLatestResponseType, type ReleaseListParamType, type ReleaseListResponseType, type ReleaseUser, type RemoveCollaboratorParamType, type RemoveCollaboratorResponseType, type RemoveIssueCommentParamType, type RemoveIssueCommentResponseType, type RemoveSubIssueParamType, type RemoveSubIssueResponseType, type RepoBaseParamType, type RepoCommentListParamType, type RepoCommentListResponseType, type RepoInfoParamType, type RepoInfoResponseType, type RepoIssueListParamType, type RepoLanguagesListParamType, type RepoLanguagesListResponseType, type RepoListBaseParamType, type RepoNameParamType, type RepoOwnerParamType, type RepoParamType, type RepoUrlParamType, type RepoUser, type ReprioritizeSubIssueParamType, type ReprioritizeSubIssueResponseType, type RequestConfigType, type RequestTokenType, type ResponseHeadersType, type ResponseMsgType, type ResponseStatusCodeType, type ResponseSuccessType, type ResponseType, type ReverseProxyType, type ShaParamType, type Socks5ProxyType, type SocksProxyType, type SubIssueListParamType, type SubIssueListResponseType, type TokenResponseType, type UnLockIssueParamType, type UnLockIssueResponseType, type UpdateIssueCommentParamType, type UpdateIssueCommentResponseType, type UpdateIssueParamType, type UpdateIssueResponseType, type UpdatePullRequestCommentParamType, type UpdatePullRequestCommentResponseType, type UpdatePullRequestParamType, type UpdatePullRequestResponseType, type UpdateReleaseParamType, type UpdateReleaseResponseType, type UserByTokenRepoListParamType, type UserIdParamType, type UserInfoByAuthParamType, type UserInfoByIdParamType, type UserInfoParamType, type UserInfoResponseType, type UserNameParamType, type UserRepoCreateParamType, type UserRepoCreateResponseType, type UserRepoListParamType, type UserRepoListType, type WebHookSignatureParamType, type WebHookSignatureResponseType, create_state_id, Client as default, formatDate, type formatParamType, get_langage_color, get_local_repo_default_branch, get_relative_time, get_remote_repo_default_branch, index as github };
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import Ot from'path';import {URL as URL$1,fileURLToPath}from'url';import {execSync}from'child_process';import he from'fs';import {promisify}from'util';import jt from'color-convert';import we from'dayjs';import Vt from'dayjs/plugin/relativeTime.js';import Kt from'git-url-parse';import Jt from'language-colors';import {simpleGit}from'simple-git';import {v4}from'uuid';import O from'axios';import {HttpProxyAgent}from'http-proxy-agent';import {HttpsProxyAgent}from'https-proxy-agent';import {SocksProxyAgent}from'socks-proxy-agent';import {capitalize}from'lodash-es';import St from'crypto';import na from'jsonwebtoken';var Ut=Object.defineProperty;var w=(d,e)=>()=>(d&&(e=d(d=0)),e);var k=(d,e)=>{for(var a in e)Ut(d,a,{get:e[a],enumerable:true});};var f,De,A,Ue,Oe,Ne,Fe,oe,v,ie,Be,ne,We,ze,S,je,Ve,Ke,_,p,le,C,Je,y,Ye,ue,H,Xe,$,Qe,G,de,Ze,D,P,et,R,tt,at,M,rt,F,st,B,ot,it,nt,pe,W,x,lt,ut,dt,z,U,pt,mt,me,ct,_t,gt,L,ce=w(()=>{f="\u55B5\u545C~ \u5F53\u524D\u5BA2\u6237\u7AEF\u7C7B\u578B\u4E0D\u662FApp\u7C7B\u578B, \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u54E6",De="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEF\u914D\u7F6E\u4E0D\u5B8C\u6574",A="\u55B5\u545C~ \u8BF7\u6C42\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",Ue="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Oe="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Ne="\u55B5\u545C~ \u5E94\u7528\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A",Fe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",oe="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",v="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",ie="\u55B5\u545C~ \u5237\u65B0\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",Be="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6807\u9898",ne="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",We="\u55B5\u545C~ \u672C\u5730\u4ED3\u5E93\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",ze="\u55B5\u545C~ \u8FDC\u7A0B\u4ED3\u5E93URL\u4E0D\u80FD\u4E3A\u7A7A",S="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",je="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",Ve="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",Ke="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",_="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",p="\u55B5\u545C~ \u4ED3\u5E93\u62E5\u6709\u8005\u6216\u4ED3\u5E93\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",le="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",C="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",Je="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",y="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ye="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",ue="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",H="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",Xe="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",$="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",Qe="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",G="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",de="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",Ze="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",D="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",P="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",et="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",R="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",tt="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",at="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u7F16\u53F7\u6216\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",M="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",rt="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",F="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",st="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",B="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",ot="\u55B5\u545C~ \u9501\u5B9A\u8BAE\u9898\u5931\u8D25",it="\u55B5\u545C~ \u89E3\u9501\u8BAE\u9898\u5931\u8D25",nt="\u55B5\u545C~ \u5220\u9664\u8BAE\u9898\u5931\u8D25",pe="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",W="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",x="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",lt="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6E90\u5206\u652F",ut="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u76EE\u6807\u5206\u652F",dt="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7684\u5408\u5E76\u65B9\u5F0F\u4E0D\u652F\u6301",z="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",U="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",pt="\u55B5\u545C~ \u8FD9\u4E2ASHA\u503C\u4E0E\u5934\u90E8\u5206\u652F\u7684SHA\u503C\u4E0D\u5339\u914D",mt="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",me="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",ct="\u55B5\u545C~ WebHook \u7B7E\u540D\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A\u54E6",_t="\u55B5\u545C~ WebHook \u8BF7\u6C42\u4F53\u4E0D\u80FD\u4E3A\u7A7A\u54E6",gt="\u55B5\u545C~ WebHook \u7B7E\u540D\u5934\u4E0D\u80FD\u4E3A\u7A7A\u54E6",L="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var ht,_e,ge,wt,yt,ft=w(()=>{ht="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",_e="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",ge="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",wt="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u5220\u9664\u6210\u529F",yt="\u55B5\u545C~ WebHook\u7B7E\u540D\u9A8C\u8BC1\u6210\u529F";});var Ft,bt,Rt=w(()=>{Ft=Object.freeze(fileURLToPath(import.meta.url)),bt=Object.freeze(Ot.join(Ft,"../..").replace(/\\/g,"/"));});async function Xt(d){try{return await he.promises.access(d),!0}catch{return false}}function Ct(d="",e=""){e=e||bt;try{let a=`${e}/${d}`;if(!he.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let o=he.readFileSync(a,"utf8");return JSON.parse(o)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${d}`,a),{}}}async function Pt(d="zh-cn"){await import(`dayjs/locale/${String(d).toLowerCase()}.js`);}async function m(d,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await Pt(e),we(d).locale(e).format(a)}async function Qt(d,e="zh-cn"){return await Pt(e),we.extend(Vt),we(d).fromNow()}function j(d){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=d.match(e);if(a){let s=a[1];d=s.startsWith("https")?s:`https://${s}`;}let o=Kt(d);return {owner:o.owner,repo:o.name}}async function Et(){return (await Yt("git --version")).toString("utf-8").trim()}async function Zt(d){if(!d)throw new Error(We);try{try{await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let e=Ot.join(d,".git");if(!await Xt(e))throw new Error(`\u8DEF\u5F84 ${d} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93`);let s=await simpleGit(d).revparse(["--abbrev-ref","HEAD"]);if(!s)throw new Error("\u65E0\u6CD5\u83B7\u53D6\u4ED3\u5E93\u5206\u652F\u4FE1\u606F\uFF0C\u8BF7\u786E\u4FDD\u4ED3\u5E93\u5DF2\u521D\u59CB\u5316");return s.trim()}catch(e){throw new Error(`\u83B7\u53D6\u672C\u5730\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}async function ye(d){if(!d)throw new Error(ze);try{let e;try{e=await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let a=new URL(d);if(a.protocol!=="https:"&&a.protocol!=="http:")throw new Error("\u8FDC\u7A0B\u4ED3\u5E93URL\u5FC5\u987B\u662FHTTP\u6216HTTPS\u534F\u8BAE");let{owner:o,repo:s}=j(a.href);if(!(o||s))throw new Error(`url: ${a.href} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93\u5730\u5740`);let i=(await simpleGit().raw(["ls-remote","--symref",d,"HEAD"])).match(/^ref: refs\/heads\/([^\t\n]+)/m);if(!i)throw new Error("\u65E0\u6CD5\u4ECE\u8FDC\u7A0B\u4ED3\u5E93\u83B7\u53D6\u9ED8\u8BA4\u5206\u652F\u4FE1\u606F");return i[1]}catch(e){throw new Error(`\u83B7\u53D6\u8FDC\u7A0B\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}function ea(d){if(!Array.isArray(d))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(d.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!d.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${jt.rgb.hex(d)}`}function fe(d){return d=String(d).toLowerCase(),ea(Jt[d].color)??"#ededed"}async function ta(d,e){return Promise.resolve(Array.from({length:Math.ceil(d.length/e)},(a,o)=>d.slice(o*e,o*e+e)))}async function kt(d){try{if(!d)return {total:0,contributions:[]};let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,o=Array.from(d.matchAll(e),i=>i[1]),s=Array.from(d.matchAll(a),i=>String(i[1]).toLowerCase()==="no"?0:parseInt(i[1]));if(!o.length||!s.length)return {total:0,contributions:[]};let t=o.map((i,n)=>({date:i,count:s[n]})).sort((i,n)=>i.date.localeCompare(n.date)),r=await ta(t,7);return {total:s.reduce((i,n)=>i+n,0),contributions:r}}catch(e){throw new Error(`\u89E3\u6790\u8D21\u732E\u6570\u636E\u5931\u8D25: ${e}`)}}var Yt,be=w(()=>{ce();Rt();Yt=promisify(execSync);});var Re,vt=w(()=>{be();Re=Ct("package.json");});var b=w(()=>{ce();ft();be();vt();});function Te(d="github",e,a="common"){let o={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}function q(d="github",e,a="common"){let o={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}async function ra(){return Promise.resolve(v4().replace(/-/g,""))}var V=w(()=>{});var K,Ce=w(()=>{b();K=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",o,s,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=o,this.proxy=s,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,o,s,t){let r=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),i={headers:this.createHeaders(t),params:o,validateStatus:()=>true};if(this.proxy){let n=this.proxy.type,l=this.proxy.address;switch(n){case "http":i.httpAgent=new HttpProxyAgent(l),i.httpsAgent=new HttpsProxyAgent(l);break;case "https":i.httpsAgent=new HttpsProxyAgent(l);break;case "socks":case "socks5":{let u=new SocksProxyAgent(l);i.httpAgent=u,i.httpsAgent=u;break}}}try{let n;switch(e){case "get":n=await O.get(r,i);break;case "post":n=await O.post(r,s,i);break;case "patch":n=await O.patch(r,s,i);break;case "put":n=await O.put(r,s,i);break;case "delete":n=await O.delete(r,{...i,data:s});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let l=Object.fromEntries(Object.entries(n.headers).filter(([u,c])=>c!==void 0).map(([u,c])=>[u.toLowerCase(),c]));return {success:!0,statusCode:n.status,headers:l,data:n.data,msg:n.status>=200&&n.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(n){let l=n,u=l.response?.headers?Object.fromEntries(Object.entries(l.response.headers).filter(([c,I])=>I!==void 0).map(([c,I])=>[c,I])):{};return {success:false,statusCode:l.response?.status??500,headers:u,msg:l.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,o){return this.request("get",e,a,null,o)}async post(e,a,o,s){return this.request("post",e,a,o,s)}async patch(e,a=null,o,s){return this.request("patch",e,a,o,s)}async put(e,a,o,s){return this.request("put",e,a,o,s)}async delete(e,a=null,o,s){return this.request("delete",e,a,o,s)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${Re.name}/v${Re.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let o=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${o}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var Pe=w(()=>{V();Ce();});var It={};k(It,{Auth:()=>J});var J,Ee=w(()=>{b();E();J=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_token_by_code(e){if(!this.is_app_client)throw new Error(f);if(!e.code)throw new Error(oe);try{this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!o)throw new Error(Ke);let s={success:o,info:_e,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=s;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{if(!this.is_app_client)throw new Error(f);let a=e?.access_token??this.userToken;if(!a)throw new Error(S);if(!a.startsWith("ghu_"))throw new Error(v);this.setRequestConfig({url:this.api_url,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let o=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(o.data){let s=!(o.status==="ok"&&(o.statusCode===404||o.statusCode===422));o.data={success:s,info:s?_e:je};}return o}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!this.is_app_client)throw new Error(f);if(!e.refresh_token)throw new Error(oe);if(!e.refresh_token.startsWith("ghr_"))throw new Error(ie);this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error,s=Ve;switch(a.data.error){case "bad_refresh_token":s=ie;break;case "unauthorized":s=_;break}if(a.data){if(!o)throw new Error(s);let t={success:o,info:ht,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`[GitHub] \u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL("/login/oauth/authorize",this.base_url);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`[GitHub] \u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var $t={};k($t,{Commit:()=>X});var X,ke=w(()=>{b();E();X=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,o,s,t;if("url"in e){s=e.url;let i=j(s);a=i?.owner,o=i?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});let r=await this.get(`/repos/${a}/${o}/commits/${t}`);switch(r.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue);case 422:throw new Error(Ye)}if(r.data){let i=r.data?.commit?.message??"",[n,...l]=i.split(`
2
- `),u={html_url:r.data.html_url,sha:r.data.sha,comments_url:r.data.comments_url,commit:{url:r.data.commit.url,author:{id:r.data.author.id,login:r.data.author.login,name:r.data.commit.author.name,avatar_url:r.data.author.avatar_url,email:r.data.commit.author.email,html_url:r.data.author.html_url,type:capitalize(String(r.data.author.type).toLowerCase()),date:this.format?await m(r.data.commit.author.date):r.data.commit.author.date},committer:{id:r.data.committer.id,login:r.data.committer.login,name:r.data.commit.committer.name,avatar_url:r.data.committer.avatar_url,email:r.data.commit.committer.email,html_url:r.data.committer.html_url,type:capitalize(String(r.data.committer.type).toLowerCase()),date:this.format?await m(r.data.commit.committer.date):r.data.commit.committer.date},message:r.data.commit.message,...this.format&&{title:n,body:l<0?l.join(`
3
- `):null},tree:{url:r.data.commit.tree.url,sha:r.data.commit.tree.sha}},parents:r.data.parents.map(c=>({sha:c.sha,url:c.url})),stats:{additions:r.data.stats.additions,deletions:r.data.stats.deletions,total:r.data.stats.total},files:r.data.files.map(c=>({sha:c.sha,filename:c.filename,status:c.status,additions:c.additions,deletions:c.deletions,changes:c.changes,blob_url:c.blob_url,raw_url:c.raw_url}))};r.data=u;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_commit_list(e){try{this.setRequestConfig({token:this.userToken});let a,o,s;if("url"in e){s=e.url;let l=j(s);a=l?.owner,o=l?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);let{...t}=e;if(e.sha)t.sha=e.sha;else {let u=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});u&&(t.sha=u);}let r={};t.sha&&(r.sha=t.sha),t.path&&(r.path=t.path),t.author&&(r.author=t.author),t.since&&(r.since=t.since),t.until&&(r.until=t.until),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let i=`/repos/${a}/${o}/commits`,n=await this.get(i,r);switch(n.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue)}if(n.data){let l=await Promise.all(n.data.map(async u=>{let[c,...I]=u.commit.message.split(`
1
+ import Ot from'path';import {URL as URL$1,fileURLToPath}from'url';import {exec}from'child_process';import he from'fs';import zt from'color-convert';import we from'dayjs';import jt from'dayjs/plugin/relativeTime.js';import Vt from'git-url-parse';import Kt from'language-colors';import {simpleGit}from'simple-git';import {v4}from'uuid';import O from'axios';import {HttpProxyAgent}from'http-proxy-agent';import {HttpsProxyAgent}from'https-proxy-agent';import {SocksProxyAgent}from'socks-proxy-agent';import {capitalize}from'lodash-es';import St from'crypto';import ia from'jsonwebtoken';var Ut=Object.defineProperty;var w=(d,e)=>()=>(d&&(e=d(d=0)),e);var k=(d,e)=>{for(var a in e)Ut(d,a,{get:e[a],enumerable:true});};var f,De,A,Ue,Oe,Ne,Fe,oe,v,ie,We,ne,Be,ze,S,je,Ve,Ke,_,p,le,C,Je,y,Ye,ue,H,Xe,x,Qe,G,de,Ze,D,P,et,R,tt,at,M,rt,F,st,W,ot,it,nt,pe,B,$,lt,ut,dt,z,U,pt,mt,me,ct,_t,gt,L,ce=w(()=>{f="\u55B5\u545C~ \u5F53\u524D\u5BA2\u6237\u7AEF\u7C7B\u578B\u4E0D\u662FApp\u7C7B\u578B, \u4E0D\u652F\u6301\u6B64\u64CD\u4F5C\u54E6",De="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEF\u914D\u7F6E\u4E0D\u5B8C\u6574",A="\u55B5\u545C~ \u8BF7\u6C42\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",Ue="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Oe="\u55B5\u545C~ \u5E94\u7528\u5BA2\u6237\u7AEFID\u4E0D\u80FD\u4E3A\u7A7A",Ne="\u55B5\u545C~ \u5E94\u7528\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A",Fe="\u55B5\u545C~ \u5E94\u7528\u6807\u8BC6\u7B26\u4E0D\u80FD\u4E3A\u7A7A",oe="\u55B5\u545C~ \u6388\u6743\u7801\u4E0D\u80FD\u4E3A\u7A7A",v="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",ie="\u55B5\u545C~ \u5237\u65B0\u4EE4\u724C\u4E0D\u80FD\u4E3A\u7A7A",We="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6807\u9898",ne="\u55B5\u545C~ \u4EE3\u7406\u5730\u5740\u683C\u5F0F\u4E0D\u6B63\u786E\u54E6",Be="\u55B5\u545C~ \u672C\u5730\u4ED3\u5E93\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A",ze="\u55B5\u545C~ \u8FDC\u7A0B\u4ED3\u5E93URL\u4E0D\u80FD\u4E3A\u7A7A",S="\u55B5\u545C~ \u8FD9\u4E2A\u4EE4\u724C\u4F3C\u4E4E\u4E0D\u662F\u6709\u6548\u7684",je="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5DF2\u8FC7\u671F",Ve="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u5931\u8D25",Ke="\u55B5\u545C~ \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25",_="\u55B5\u545C~ \u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",p="\u55B5\u545C~ \u4ED3\u5E93\u62E5\u6709\u8005\u6216\u4ED3\u5E93\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A",le="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u4ED3\u5E93\u4FE1\u606F(\u4ED3\u5E93\u62E5\u6709\u8005/\u4ED3\u5E93\u540D\u6216\u5B8C\u6574URL)",C="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",Je="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u5DF2\u88AB\u79FB\u52A8",y="\u55B5\u545C~ \u8FD9\u4E2A\u4ED3\u5E93\u4E0D\u5B58\u5728\u6216\u8BBF\u95EE\u88AB\u62D2\u7EDD\u5566\uFF0C\u53EF\u80FD\u662F\u4EE4\u724C\u8FC7\u671F\u4E86\u6216\u6743\u9650\u4E0D\u8DB3",Ye="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u4E0D\u5B58\u5728\u54E6",ue="\u55B5\u545C~ \u8FD9\u4E2A\u63D0\u4EA4\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",H="\u55B5\u545C~ \u8FD9\u4E2A\u7528\u6237\u4E0D\u5B58\u5728\u54E6",Xe="\u55B5\u545C~ \u7528\u6237ID\u4E0D\u80FD\u4E3A\u7A7A",x="\u55B5\u545C~ \u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A",Qe="\u55B5\u545C~ \u7EC4\u7EC7\u8D26\u53F7\u6682\u4E0D\u652F\u6301",G="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u4E0D\u5B58\u5728\u54E6",de="\u55B5\u545C~ \u7EC4\u7EC7\u540D\u4E0D\u80FD\u4E3A\u7A7A",Ze="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728\u54E6",D="\u55B5\u545C~ \u8FD9\u4E2A\u7EC4\u7EC7\u6216\u7528\u6237\u4E0D\u5B58\u5728\u54E6",P="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u4E0D\u5B58\u5728\u54E6",et="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u5DF2\u88AB\u79FB\u52A8",R="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u4E0D\u5B58\u5728\u54E6",tt="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",at="\u55B5\u545C~ \u8FD9\u4E2A\u5173\u8054\u8BAE\u9898\u7F16\u53F7\u6216\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",M="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",rt="\u55B5\u545C~ \u8BAE\u9898\u6807\u9898\u4E0D\u80FD\u4E3A\u7A7A\u54E6",F="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",st="\u55B5\u545C~ \u8FD9\u4E2A\u8BAE\u9898\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",W="\u55B5\u545C~ \u8FD9\u4E2A\u5B50\u8BAE\u9898\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",ot="\u55B5\u545C~ \u9501\u5B9A\u8BAE\u9898\u5931\u8D25",it="\u55B5\u545C~ \u89E3\u9501\u8BAE\u9898\u5931\u8D25",nt="\u55B5\u545C~ \u5220\u9664\u8BAE\u9898\u5931\u8D25",pe="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A\u54E6",B="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",$="\u55B5\u545C~ \u8FD9\u4E2A\u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A\u54E6",lt="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u6E90\u5206\u652F",ut="\u55B5\u545C~ \u8BF7\u63D0\u4F9B\u76EE\u6807\u5206\u652F",dt="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7684\u5408\u5E76\u65B9\u5F0F\u4E0D\u652F\u6301",z="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",U="\u55B5\u545C~ \u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u7F16\u53F7\u6216\u4ED3\u5E93\u4E0D\u5B58\u5728",pt="\u55B5\u545C~ \u8FD9\u4E2ASHA\u503C\u4E0E\u5934\u90E8\u5206\u652F\u7684SHA\u503C\u4E0D\u5339\u914D",mt="\u55B5\u545C~ WebHook \u7B7E\u540D\u683C\u5F0F\u4E0D\u6B63\u786E",me="\u55B5\u545C~ WebHook \u7B7E\u540D\u9A8C\u8BC1\u5931\u8D25",ct="\u55B5\u545C~ WebHook \u7B7E\u540D\u5BC6\u94A5\u4E0D\u80FD\u4E3A\u7A7A\u54E6",_t="\u55B5\u545C~ WebHook \u8BF7\u6C42\u4F53\u4E0D\u80FD\u4E3A\u7A7A\u54E6",gt="\u55B5\u545C~ WebHook \u7B7E\u540D\u5934\u4E0D\u80FD\u4E3A\u7A7A\u54E6",L="\u55B5\u545C~ \u8BBF\u95EE\u901F\u7387\u53D7\u9650\u5566 \u8BF7\u7B49\u5F851\u5C0F\u65F6\u540E\u518D\u8BD5 \u6216 \u4F7F\u7528\u8BBF\u95EE\u4EE4\u724C\u63D0\u5347\u9650\u989D";});var ht,_e,ge,wt,yt,ft=w(()=>{ht="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u5237\u65B0\u6210\u529F",_e="\u55B5\u545C~ \u8BBF\u95EE\u4EE4\u724C\u6709\u6548",ge="\u55B5\u545C~ \u8BAE\u9898\u89E3\u9501\u6210\u529F",wt="\u55B5\u545C~ \u8BAE\u9898\u8BC4\u8BBA\u5220\u9664\u6210\u529F",yt="\u55B5\u545C~ WebHook\u7B7E\u540D\u9A8C\u8BC1\u6210\u529F";});var Ft,bt,Rt=w(()=>{Ft=Object.freeze(fileURLToPath(import.meta.url)),bt=Object.freeze(Ot.join(Ft,"../..").replace(/\\/g,"/"));});function Jt(d,e){return new Promise(o=>{exec(d,e,(s,t,r)=>{t=t.toString(),r=r.toString(),o({status:!s,error:s,stdout:t,stderr:r});});})}async function Yt(d){try{return await he.promises.access(d),!0}catch{return false}}function Ct(d="",e=""){e=e||bt;try{let a=`${e}/${d}`;if(!he.existsSync(a))return console.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728: ${a}`),{};let o=he.readFileSync(a,"utf8");return JSON.parse(o)}catch(a){return console.error(`\u8BFB\u53D6 JSON \u6587\u4EF6\u5931\u8D25: ${d}`,a),{}}}async function Pt(d="zh-cn"){await import(`dayjs/locale/${String(d).toLowerCase()}.js`);}async function m(d,e="zh-cn",a="YYYY-MM-DD HH:mm:ss"){return await Pt(e),we(d).locale(e).format(a)}async function Xt(d,e="zh-cn"){return await Pt(e),we.extend(jt),we(d).fromNow()}function j(d){let e=/^https?:\/\/[^/]+\/(?:https?:\/\/)?([^/]+\/[^/]+\/[^/]+)/,a=d.match(e);if(a){let s=a[1];d=s.startsWith("https")?s:`https://${s}`;}let o=Vt(d);return {owner:o.owner,repo:o.name}}async function Et(){let{stdout:d}=await Jt("git --version");return d.toString().trim()}async function Qt(d){if(!d)throw new Error(Be);try{try{await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let e=Ot.join(d,".git");if(!await Yt(e))throw new Error(`\u8DEF\u5F84 ${d} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93`);let s=await simpleGit(d).revparse(["--abbrev-ref","HEAD"]);if(!s)throw new Error("\u65E0\u6CD5\u83B7\u53D6\u4ED3\u5E93\u5206\u652F\u4FE1\u606F\uFF0C\u8BF7\u786E\u4FDD\u4ED3\u5E93\u5DF2\u521D\u59CB\u5316");return s.trim()}catch(e){throw new Error(`\u83B7\u53D6\u672C\u5730\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}async function ye(d){if(!d)throw new Error(ze);try{let e;try{e=await Et();}catch{throw new Error("\u55B5\u545C~, Git \u672A\u5B89\u88C5\u6216\u672A\u6B63\u786E\u914D\u7F6E")}let a=new URL(d);if(a.protocol!=="https:"&&a.protocol!=="http:")throw new Error("\u8FDC\u7A0B\u4ED3\u5E93URL\u5FC5\u987B\u662FHTTP\u6216HTTPS\u534F\u8BAE");let{owner:o,repo:s}=j(a.href);if(!(o||s))throw new Error(`url: ${a.href} \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684 Git \u4ED3\u5E93\u5730\u5740`);let n=(await simpleGit().raw(["ls-remote","--symref",d,"HEAD"])).match(/^ref: refs\/heads\/([^\t\n]+)/m);if(!n)throw new Error("\u65E0\u6CD5\u4ECE\u8FDC\u7A0B\u4ED3\u5E93\u83B7\u53D6\u9ED8\u8BA4\u5206\u652F\u4FE1\u606F");return n[1]}catch(e){throw new Error(`\u83B7\u53D6\u8FDC\u7A0B\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${e.message}`)}}function Zt(d){if(!Array.isArray(d))throw new Error("RGB\u503C\u5FC5\u987B\u662F\u6570\u7EC4\u7C7B\u578B");if(d.length!==3)throw new Error("RGB\u6570\u7EC4\u5FC5\u987B\u5305\u542B\u4E14\u4EC5\u5305\u542B3\u4E2A\u503C");if(!d.every(e=>Number.isInteger(e)&&e>=0&&e<=255))throw new Error("RGB\u503C\u5FC5\u987B\u90FD\u662F0-255\u4E4B\u95F4\u7684\u6574\u6570");return `#${zt.rgb.hex(d)}`}function fe(d){return d=String(d).toLowerCase(),Zt(Kt[d].color)??"#ededed"}async function ea(d,e){return Promise.resolve(Array.from({length:Math.ceil(d.length/e)},(a,o)=>d.slice(o*e,o*e+e)))}async function kt(d){try{if(!d)return {total:0,contributions:[]};let e=/data-date="(.*?)" id="contribution-day-component/g,a=/<tool-tip .*?class="sr-only position-absolute">(.*?) contribution/g,o=Array.from(d.matchAll(e),n=>n[1]),s=Array.from(d.matchAll(a),n=>String(n[1]).toLowerCase()==="no"?0:parseInt(n[1]));if(!o.length||!s.length)return {total:0,contributions:[]};let t=o.map((n,i)=>({date:n,count:s[i]})).sort((n,i)=>n.date.localeCompare(i.date)),r=await ea(t,7);return {total:s.reduce((n,i)=>n+i,0),contributions:r}}catch(e){throw new Error(`\u89E3\u6790\u8D21\u732E\u6570\u636E\u5931\u8D25: ${e}`)}}var be=w(()=>{ce();Rt();});var Re,vt=w(()=>{be();Re=Ct("package.json");});var b=w(()=>{ce();ft();be();vt();});function Te(d="github",e,a="common"){let o={github:"api.github.com",gitee:"gitee.com/api/v5",gitcode:"api.gitcode.com/api/v5"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}function q(d="github",e,a="common"){let o={github:"github.com",gitee:"gitee.com",gitcode:"gitcode.com"};if(!e)return `https://${o[d??"github"]}`.replace(/\/$/,"");let t=`${e.match(/^(https?):/)?.[1]??"https"}://${e.replace(/^https?:\/\/|\/$/g,"")}`;return a==="common"?t:`${t}/${o[d]}`}async function aa(){return Promise.resolve(v4().replace(/-/g,""))}var V=w(()=>{});var K,Ce=w(()=>{b();K=class{baseUrl;tokenType;authorization;proxy;defaultHeaders;constructor(e,a="Bearer",o,s,t){this.baseUrl=e.replace(/\/$/,""),this.authorization=o,this.proxy=s,this.tokenType=a,this.defaultHeaders=t;}async request(e,a,o,s,t){let r=`${this.baseUrl}/${a}`.replace(/\/+/g,"/"),n={headers:this.createHeaders(t),params:o,validateStatus:()=>true};if(this.proxy){let i=this.proxy.type,l=this.proxy.address;switch(i){case "http":n.httpAgent=new HttpProxyAgent(l),n.httpsAgent=new HttpsProxyAgent(l);break;case "https":n.httpsAgent=new HttpsProxyAgent(l);break;case "socks":case "socks5":{let u=new SocksProxyAgent(l);n.httpAgent=u,n.httpsAgent=u;break}}}try{let i;switch(e){case "get":i=await O.get(r,n);break;case "post":i=await O.post(r,s,n);break;case "patch":i=await O.patch(r,s,n);break;case "put":i=await O.put(r,s,n);break;case "delete":i=await O.delete(r,{...n,data:s});break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u8BF7\u6C42\u65B9\u6CD5: ${e}`)}let l=Object.fromEntries(Object.entries(i.headers).filter(([u,c])=>c!==void 0).map(([u,c])=>[u.toLowerCase(),c]));return {success:!0,statusCode:i.status,headers:l,data:i.data,msg:i.status>=200&&i.status<500?"\u8BF7\u6C42\u6210\u529F":"\u8BF7\u6C42\u5F02\u5E38"}}catch(i){let l=i,u=l.response?.headers?Object.fromEntries(Object.entries(l.response.headers).filter(([c,I])=>I!==void 0).map(([c,I])=>[c,I])):{};return {success:false,statusCode:l.response?.status??500,headers:u,msg:l.message??"\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25",data:null}}}async get(e,a,o){return this.request("get",e,a,null,o)}async post(e,a,o,s){return this.request("post",e,a,o,s)}async patch(e,a=null,o,s){return this.request("patch",e,a,o,s)}async put(e,a,o,s){return this.request("put",e,a,o,s)}async delete(e,a=null,o,s){return this.request("delete",e,a,o,s)}createHeaders(e){let a={"Content-Type":"application/json","User-Agent":`${Re.name}/v${Re.version}`,...this.defaultHeaders??{}};if(this.authorization)if(this.tokenType==="Basic"){let o=Buffer.from(this.authorization).toString("base64");a.Authorization=`Basic ${o}`;}else this.tokenType==="Bearer"?a.Authorization=`Bearer ${this.authorization}`:a.Authorization=`${this.tokenType} ${this.authorization}`;return e&&Object.assign(a,e),a}};});var Pe=w(()=>{V();Ce();});var It={};k(It,{Auth:()=>J});var J,Ee=w(()=>{b();E();J=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_token_by_code(e){if(!this.is_app_client)throw new Error(f);if(!e.code)throw new Error(oe);try{this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,code:e.code},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error;if(a.data){if(!o)throw new Error(Ke);let s={success:o,info:_e,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=s;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async check_token_status(e){try{if(!this.is_app_client)throw new Error(f);let a=e?.access_token??this.userToken;if(!a)throw new Error(S);if(!a.startsWith("ghu_"))throw new Error(v);this.setRequestConfig({url:this.api_url,tokenType:"Basic",token:`${this.Client_ID}:${this.Client_Secret}`});let o=await this.post(`/applications/${this.Client_ID}/token`,{access_token:a});if(o.data){let s=!(o.status==="ok"&&(o.statusCode===404||o.statusCode===422));o.data={success:s,info:s?_e:je};}return o}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BBF\u95EE\u4EE4\u724C\u72B6\u6001\u5931\u8D25: ${a.message}`)}}async refresh_token(e){try{if(!this.is_app_client)throw new Error(f);if(!e.refresh_token)throw new Error(oe);if(!e.refresh_token.startsWith("ghr_"))throw new Error(ie);this.setRequestConfig({url:this.base_url});let a=await this.post("/login/oauth/access_token",{client_id:this.Client_ID,client_secret:this.Client_Secret,grant_type:"refresh_token",refresh_token:e.refresh_token},{Accept:"application/json"}),o=a.status==="ok"&&a.statusCode===200&&!a.data.error,s=Ve;switch(a.data.error){case "bad_refresh_token":s=ie;break;case "unauthorized":s=_;break}if(a.data){if(!o)throw new Error(s);let t={success:o,info:ht,access_token:a.data.access_token,expires_in:a.data.expires_in??null,refresh_token:a.data.refresh_token??null,refresh_token_expires_in:a.data.refresh_token_expires_in??null,scope:a.data.scope,token_type:a.data.token_type};a.data=t;}return a}catch(a){throw new Error(`[GitHub] \u5237\u65B0\u8BBF\u95EE\u4EE4\u724C\u5931\u8D25: ${a.message}`)}}async create_auth_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL("/login/oauth/authorize",this.base_url);return a.search=new URLSearchParams({client_id:this.Client_ID,...e&&{state:e}}).toString(),Promise.resolve(a.toString())}catch(a){throw new Error(`[GitHub] \u751F\u6210\u6388\u6743\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}};});var xt={};k(xt,{Commit:()=>X});var X,ke=w(()=>{b();E();X=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_commit_info(e){try{this.setRequestConfig({token:this.userToken});let a,o,s,t;if("url"in e){s=e.url;let n=j(s);a=n?.owner,o=n?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);e.sha?t=e.sha:t=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});let r=await this.get(`/repos/${a}/${o}/commits/${t}`);switch(r.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue);case 422:throw new Error(Ye)}if(r.data){let n=r.data?.commit?.message??"",[i,...l]=n.split(`
2
+ `),u={html_url:r.data.html_url,sha:r.data.sha,comments_url:r.data.comments_url,commit:{url:r.data.commit.url,author:{id:r.data.author.id,login:r.data.author.login,name:r.data.commit.author.name,avatar_url:r.data.author.avatar_url,email:r.data.commit.author.email,html_url:r.data.author.html_url,type:capitalize(String(r.data.author.type).toLowerCase()),date:this.format?await m(r.data.commit.author.date):r.data.commit.author.date},committer:{id:r.data.committer.id,login:r.data.committer.login,name:r.data.commit.committer.name,avatar_url:r.data.committer.avatar_url,email:r.data.commit.committer.email,html_url:r.data.committer.html_url,type:capitalize(String(r.data.committer.type).toLowerCase()),date:this.format?await m(r.data.commit.committer.date):r.data.commit.committer.date},message:r.data.commit.message,...this.format&&{title:i,body:l.length>0?l.join(`
3
+ `):null},tree:{url:r.data.commit.tree.url,sha:r.data.commit.tree.sha}},parents:r.data.parents.map(c=>({sha:c.sha,url:c.url})),stats:{additions:r.data.stats.additions,deletions:r.data.stats.deletions,total:r.data.stats.total},files:r.data.files.map(c=>({sha:c.sha,filename:c.filename,status:c.status,additions:c.additions,deletions:c.deletions,changes:c.changes,blob_url:c.blob_url,raw_url:c.raw_url}))};r.data=u;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_commit_list(e){try{this.setRequestConfig({token:this.userToken});let a,o,s;if("url"in e){s=e.url;let l=j(s);a=l?.owner,o=l?.repo;}else if("owner"in e&&"repo"in e)a=e.owner,o=e.repo;else throw new Error(le);let{...t}=e;if(e.sha)t.sha=e.sha;else {let u=await(await this.get_repo()).get_repo_default_branch({owner:a,repo:o});u&&(t.sha=u);}let r={};t.sha&&(r.sha=t.sha),t.path&&(r.path=t.path),t.author&&(r.author=t.author),t.since&&(r.since=t.since),t.until&&(r.until=t.until),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let n=`/repos/${a}/${o}/commits`,i=await this.get(n,r);switch(i.statusCode){case 401:throw new Error(y);case 404:throw new Error(ue)}if(i.data){let l=await Promise.all(i.data.map(async u=>{let[c,...I]=u.commit.message.split(`
4
4
  `);return {html_url:u.html_url,sha:u.sha,comments_url:u.comments_url,commit:{url:u.commit.url,author:{id:u.author.id,login:u.author.login,name:u.commit.author.name,avatar_url:u.author.avatar_url,email:u.commit.author.email,html_url:u.author.html_url,type:capitalize(String(u.author.type).toLowerCase()),date:this.format?await m(u.commit.author.date):u.commit.author.date},committer:{id:u.committer.id,login:u.committer.login,name:u.commit.committer.name,avatar_url:u.committer.avatar_url,email:u.commit.committer.email,html_url:u.committer.html_url,type:capitalize(String(u.committer.type).toLowerCase()),date:this.format?await m(u.commit.committer.date):u.commit.committer.date},message:u.commit.message,...this.format&&{title:c,body:I.length>0?I.join(`
5
- `):null},tree:{url:u.commit.tree.url,sha:u.commit.tree.sha}},parents:u.parents.map(T=>({sha:T.sha,url:T.url})),stats:{additions:u.stats.additions,deletions:u.stats.deletions,total:u.stats.total},files:u.files.map(T=>({sha:T.sha,filename:T.filename,status:T.status,additions:T.additions,deletions:T.deletions,changes:T.changes,blob_url:T.blob_url,raw_url:T.raw_url}))}}));n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u5217\u8868\u5931\u8D25: ${a.message}`)}}};});var xt={};k(xt,{Issue:()=>Q});var Q,ve=w(()=>{b();Pe();E();Q=class extends h{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 new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.get(`/repos/${a}/${o}/issues/${Number(s)}`);switch(t.statusCode){case 404:throw new Error(P);case 301:throw new Error(et)}if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:this.format?await m(t.data.closed_at):t.data.closed_at,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_issues_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.milestone&&(t.milestone=s.milestone.toString()),s.state&&(t.state=s.state),s.assignee&&(t.assignee=s.assignee),s.creator&&(t.creator=s.creator),s.labels&&(t.labels=s.labels),s.sort&&(t.sort=s.sort),s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues`,i=await this.get(r,t);if(i.statusCode===401)throw new Error(_);if(i.data){let n=i.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u7684\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.title)throw new Error(rt);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={...s,...s.labels&&{labels:Array.isArray(s.labels)?s.labels:[s.labels]},...s.assignees&&{assignees:Array.isArray(s.assignees)?s.assignees:[s.assignees]}},r=await this.post(`/repos/${a}/${o}/issues`,t);switch(r.statusCode){case 403:throw new Error(_);case 301:throw new Error(C)}if(r.data&&r.data){let i={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub]\u521B\u5EFA\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},i=await this.patch(`/repos/${a}/${o}/issues/${Number(s)}`,null,r);switch(i.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(i.data&&i.data){let n={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6253\u5F00\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u5173\u95ED\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,lock_reason:t}=e,r=await this.put(`/repos/${a}/${o}/issues/${Number(s)}`,{locked:!0,lock_reason:t});switch(r.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let i;return r.statusCode===204?i={info:ge}:i={info:ot},r.data=i,r}catch(a){throw new Error(`[GitHub] \u9501\u5B9A\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/${s}/lock`);switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let r;return t.statusCode===204?r={info:ge}:r={info:it},t.data=r,t}catch(a){throw new Error(`[GitHub] \u89E3\u9501\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async get_repo_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.sort&&(t.sort=s.sort),s.direction&&s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues/comments/`,i=await this.get(r,t);if(i.statusCode===404)throw new Error(R);if(i.data){let n=i.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.since&&(r.since=t.since),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let i=`/repos/${a}/${o}/issues/${Number(s)}/comments`,n=await this.get(i,r);if(n.statusCode===404)throw new Error(R);if(n.data){let l=n.data.map(u=>({id:u.id,html_url:u.html_url,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:capitalize(u.user.type.toLowerCase())},created_at:u.created_at,updated_at:u.updated_at}));n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.body)throw new Error(st);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/issues/${Number(s)}/comments`,{body:t});if(r.statusCode===404)throw new Error(R);if(r.data){let i={id:r.data.id,html_url:`${q(this.type)}/${a}/${o}/issues/${s}#${r.data.id}`,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,...t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${Number(s)}`,null,t);if(r.statusCode===404)throw new Error(R);if(r.data){let i={id:r.data.id,html_url:r.data.html_url,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);let r;return t.statusCode===204?r={info:wt}:r={info:nt},t.data=r,t}catch(a){throw new Error(`[GitHub] \u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let i=`/repos/${a}/${o}/issues/${Number(s)}/sub_issues`,n=await this.get(i,r);if(n.statusCode===404)throw new Error(P);if(n.data){let l=n.data.map(u=>({id:u.id,html_url:u.html_url,number:u.number,comments:u.comments,state:u.state,state_reason:u.state_reason,title:u.title,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:capitalize(u.user.type.toLowerCase())},labels:u.labels?u.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:u.assignee?{id:u.assignee.id,login:u.assignee.login,name:u.assignee.name,email:u.assignee.email,html_url:u.assignee.html_url,avatar_url:u.assignee.avatar_url,type:capitalize(u.assignee.type.toLowerCase())}:null,milestone:u.milestone?{id:u.milestone.id,url:u.milestone.url,number:u.milestone.number,state:u.milestone.state,title:u.milestone.title,description:u.milestone.description,open_issues:u.milestone.open_issues,closed_issues:u.milestone.closed_issues,created_at:u.milestone.created_at,updated_at:u.milestone.updated_at,closed_at:u.milestone.closed_at,due_on:u.milestone.due_on}:null,closed_at:u.closed_at,created_at:u.created_at,updated_at:u.updated_at}));n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,replace_parent:r}=e,i=await this.post(`/repos/${a}/${o}/issues/${s}/sub_issues`,{sub_issue_id:t,replace_parent:r});if(i.statusCode===404)throw new Error(P);if(i.data){let n={id:i.data.id,html_url:i.data.html_url,number:i.data.number,comments:i.data.comments,state:i.data.state,state_reason:i.data.state_reason,title:i.data.title,body:i.data.body,user:{id:i.data.user.id,login:i.data.user.login,name:i.data.user.name,email:i.data.user.email,html_url:i.data.user.html_url,avatar_url:i.data.user.avatar_url,type:capitalize(i.data.user.type.toLowerCase())},labels:i.data.labels?i.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:i.data.assignee?{id:i.data.assignee.id,login:i.data.assignee.login,name:i.data.assignee.name,email:i.data.assignee.email,html_url:i.data.assignee.html_url,avatar_url:i.data.assignee.avatar_url,type:capitalize(i.data.assignee.type.toLowerCase())}:null,milestone:i.data.milestone?{id:i.data.milestone.id,url:i.data.milestone.url,number:i.data.milestone.number,state:i.data.milestone.state,title:i.data.milestone.title,description:i.data.milestone.description,open_issues:i.data.milestone.open_issues,closed_issues:i.data.milestone.closed_issues,created_at:i.data.milestone.created_at,updated_at:i.data.milestone.updated_at,closed_at:i.data.milestone.closed_at,due_on:i.data.milestone.due_on}:null,closed_at:i.data.closed_at,created_at:i.data.created_at,updated_at:i.data.updated_at};i.data=n;}return i}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t}=e,r=await this.delete(`/repos/${a}/${o}/issues/${s}/sub_issue`,null,{sub_issue_id:t});if(r.statusCode===404)throw new Error(P);if(r.data){let i={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,...r}=e,i={};r.before_id&&!r.after_id&&(i.before_id=r.before_id.toString()),r.after_id&&!r.before_id&&(i.after_id=r.after_id.toString());let n=`/repos/${a}/${o}/issues/${s}/sub_issues/priority`,l=await this.patch(n,i,{sub_issue_id:String(t)});if(l.statusCode===404)throw new Error(P);if(l.data){let u={id:l.data.id,html_url:l.data.html_url,number:l.data.number,comments:l.data.comments,state:l.data.state,state_reason:l.data.state_reason,title:l.data.title,body:l.data.body,user:{id:l.data.user.id,login:l.data.user.login,name:l.data.user.name,email:l.data.user.email,html_url:l.data.user.html_url,avatar_url:l.data.user.avatar_url,type:capitalize(l.data.user.type.toLowerCase())},labels:l.data.labels?l.data.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:l.data.assignee?{id:l.data.assignee.id,login:l.data.assignee.login,name:l.data.assignee.name,email:l.data.assignee.email,html_url:l.data.assignee.html_url,avatar_url:l.data.assignee.avatar_url,type:capitalize(l.data.assignee.type.toLowerCase())}:null,milestone:l.data.milestone?{id:l.data.milestone.id,url:l.data.milestone.url,number:l.data.milestone.number,state:l.data.milestone.state,title:l.data.milestone.title,description:l.data.milestone.description,open_issues:l.data.milestone.open_issues,closed_issues:l.data.milestone.closed_issues,created_at:l.data.milestone.created_at,updated_at:l.data.milestone.updated_at,closed_at:l.data.milestone.closed_at,due_on:l.data.milestone.due_on}:null,closed_at:l.data.closed_at,created_at:l.data.created_at,updated_at:l.data.updated_at};l.data=u;}return l}catch(a){throw new Error(`[GitHub] \u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var qt={};k(qt,{Repo:()=>Z});var Z,Me=w(()=>{b();E();Z=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_repos_list(e){if(!e.org)throw new Error(G);try{this.setRequestConfig({token:this.userToken});let{org:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/orgs/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(G);case 401:throw new Error(y)}if(r.data){let i=await Promise.all(r.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name??null,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email??null},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:this.format?await m(n.created_at):n.created_at,updated_at:this.format?await m(n.updated_at):n.updated_at,pushed_at:this.format?await m(n.pushed_at):n.pushed_at})));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,o={};!e?.visibility&&!e?.affiliation&&a?.type&&(o.type=a.type),a?.visibility&&(o.visibility=a.visibility),a?.affiliation&&(o.affiliation=a.affiliation),a?.sort&&(o.sort=a.sort),a?.direction&&(o.direction=a.direction),a?.per_page&&(o.per_page=a.per_page.toString()),a?.page&&(o.page=a.page.toString());let t=await this.get("/uses/repos",o);if(t.statusCode===401)throw new Error(y);if(t.data){let r=await Promise.all(t.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:this.format?await m(i.created_at):i.created_at,updated_at:this.format?await m(i.updated_at):i.updated_at,pushed_at:this.format?await m(i.pushed_at):i.pushed_at})));t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error($);this.setRequestConfig({token:this.userToken});let{username:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/users/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(H);case 401:throw new Error(y)}if(r.data){let i=await Promise.all(r.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:this.format?await m(n.created_at):n.created_at,updated_at:this.format?await m(n.updated_at):n.updated_at,pushed_at:this.format?await m(n.pushed_at):n.pushed_at})));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(D)}if(s.data){let t={id:s.data.id,name:s.data.name,full_name:s.data.full_name,owner:{id:s.data.owner.id,login:s.data.owner.login,name:s.data.owner.name,avatar_url:s.data.owner.avatar_url,type:s.data.owner.type,html_url:s.data.owner.html_url,email:s.data.owner.email},public:!s.data.private,private:s.data.private,visibility:s.data.private?"private":"public",fork:s.data.fork,archived:s.data.archived,disabled:s.data.disabled,html_url:s.data.html_url,description:s.data.description,stargazers_count:s.data.stargazers_count,watchers_count:s.data.watchers_count,language:s.data.language,forks_count:s.data.forks_count,open_issues_count:s.data.open_issues_count,default_branch:s.data.default_branch,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at,pushed_at:this.format?await m(s.data.pushed_at):s.data.pushed_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/languages`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(C)}if(s.data){let t=Object.entries(s.data),r=t.reduce((l,[,u])=>l+u,0),n={languages:t.map(([l,u])=>({language:l,color:fe(l.toLowerCase()),percent:Number((u/r*100).toFixed(2)),bytes:u}))};s.data=n;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{org:a,...o}=e;if(!a||!e.name)throw new Error(Ze);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility&&(s.private=o.visibility.toString()),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post(`/orgs/${a}/repos`,s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_user_repo(e){try{let{owner:a,...o}=e;if(!a||!e.name)throw new Error(p);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility==="private"&&(s.private=!0),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post("/user/repos",s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7528\u6237\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_repo(e){return this.create_user_repo(e)}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,{...s}=e,t={};s.affiliation&&(t.milestone=s.affiliation.toString()),s.permission&&(t.permission=s.permission.toString()),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/collaborators`,t);if(r.data){let i=await Promise.all(r.data.map(n=>({id:n.id,login:n.login,avatar_url:n.avatar_url,email:n.email,name:n.name,permissions:n.permissions,role_name:n.role_name})));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.put(`/repos/${a}/${o}/collaborators/${s}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(y);if(t.statusCode===422){let r=t.data.message;if(r&&r.includes("is not a valid permission"))throw new Error(_)}if(t.data){let r={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.delete(`/repos/${a}/${o}/collaborators/${s}`);if(t.statusCode===404)throw new Error(y);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u5931\u8D25`},t}catch(a){throw new Error(`[GitHub] \u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.visibility}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e,s;try{let t=this.base_url+"/"+a+"/"+o;s=await ye(t);}catch{s=(await this.get_repo_info({owner:a,repo:o})).data.default_branch;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.language}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var At={};k(At,{User:()=>ee});var ee,$e=w(()=>{b();E();ee=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(D);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:a});let o=await this.get(`/users/${e.username}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(D);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Xe);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/user/${e.user_id}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(H);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_auth(){if(!this.userToken)throw new Error(v);try{this.setRequestConfig({token:this.userToken});let e=await this.get("/user");switch(e.statusCode){case 401:throw new Error(_);case 404:throw new Error(H)}if(e.data){let a={id:e.data.id,login:e.data.login,name:e.data.name||null,type:capitalize(e.data.type.toLowerCase()),html_url:e.data.html_url,avatar_url:e.data.avatar_url,email:e.data.email||null,bio:e.data.bio||null,blog:e.data.blog||null,public_repos:e.data.public_repos,followers:e.data.followers,following:e.data.following};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_user_info_by_token(){return this.get_user_info_by_auth()}async get_user_contribution(e){try{if(!e.username)throw new Error($);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${Qe}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.base_url});let o=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(!o.success)throw new Error("\u83B7\u53D6\u7528\u6237\u8D21\u732E\u6570\u636E\u5931\u8D25");if(o.statusCode===404)throw new Error($);let s=await kt(o.data);return {...o,data:s}}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var Lt={};k(Lt,{Org:()=>te});var te,xe=w(()=>{b();V();E();te=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_info(e){if(!e.org)throw new Error(de);let{org:a}=e;try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/orgs/${a}`);if(o.statusCode===404)throw new Error(G);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name,avatar_url:o.data.avatar_url,description:o.data.description,html_url:o.data.html_url};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async add_member(e){if(!e.org)throw new Error(de);if(!e.username)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a,o,{org:s,username:t,role:r}=e;if(t){let l=await this.get_user();try{a=await l.get_user_id();}catch{o=await l.get_user_email();}}let i={};a?i.invitee_id=a:o&&(i.email=o),r==="admin"?i.role="admin":i.role="direct_member";let n=await this.post(`/orgs/${s}/invitations`,i);if(n.statusCode===404)throw new Error(y);if(n.statusCode===422){let l=n.data.message;if(l&&l.includes("is not a valid permission"))throw new Error(_)}if(n.data){let l={id:n.data.inviter.id,login:n.data.inviterlogin,name:n.data.inviter.name,html_url:`${q(this.type)}/${s}`,role:r};n.data=l;}return n}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u7EC4\u7EC7\u6210\u5458\u5931\u8D25: ${a.message}`)}}};});var Ht={};k(Ht,{WebHook:()=>ae});var ae,qe=w(()=>{b();E();ae=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a)throw new Error(ct);if(!e.payload)throw new Error(_t);if(!e.signature)throw new Error(gt);if(!e.signature.startsWith("sha256="))throw new Error(mt);let o=false,s="error",t=400,r=me,i;try{let n=St.createHmac("sha256",a),l=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);n.update(l,"utf8");let u=n.digest("hex"),c=e.signature.replace("sha256=","");St.timingSafeEqual(Buffer.from(u),Buffer.from(c))?(o=!0,s="ok",t=200,r="\u8BF7\u6C42\u6210\u529F",i={success:o,info:yt}):(o=!1,s="error",t=403,r="\u8BF7\u6C42\u5931\u8D25",i={success:o,info:me});}catch(n){throw new Error(`[GitHub] \u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${n.message}`)}return Promise.resolve({success:o,status:s,statusCode:t,msg:r,data:i})}};});var Gt={};k(Gt,{Pull_Request:()=>re});var re,Ae=w(()=>{b();E();re=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_pull_request_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/repos/${e.owner}/${e.repo}/pulls/${e.pr_number}`);if(a.data){let o={id:a.data.id,html_url:a.data.html_url,number:a.data.number,state:a.data.state,locked:a.data.locked,title:a.data.title,body:a.data.body,draft:a.data.draft,created_at:a.data.created_at,merged_at:a.data.merged_at,updated_at:a.data.updated_at,closed_at:a.data.closed_at,user:{id:a.data.user.id,name:a.data.user.name,login:a.data.user.login,html_url:a.data.user.html_url,avatar_url:a.data.user.avatar_url},base:{label:a.data.base.label,ref:a.data.base.ref,sha:a.data.base.sha,user:{id:a.data.base.user.id,name:a.data.base.user.name,login:a.data.base.user.login,html_url:a.data.base.user.html_url,avatar_url:a.data.base.user.avatar_url},repo:{id:a.data.base.repo.id,owner:a.data.base.repo.owner,name:a.data.base.repo.name,full_name:a.data.base.repo.full_name}},head:{label:a.data.head.label,ref:a.data.head.ref,sha:a.data.head.sha,user:{id:a.data.head.user.id,name:a.data.head.user.name,login:a.data.head.user.login,html_url:a.data.head.user.html_url,avatar_url:a.data.head.user.avatar_url},repo:{id:a.data.head.repo.id,owner:a.data.head.repo.owner,name:a.data.head.repo.name,full_name:a.data.head.repo.full_name}},assignee:a.data.assignee?{id:a.data.assignee.id,name:a.data.assignee.name,login:a.data.assignee.login,html_url:a.data.assignee.html_url,avatar_url:a.data.assignee.avatar_url}:null,assignees:a.data.assignees&&a.data.assignees.length>0?a.data.assignees.map(s=>({id:s.id,name:s.name,login:s.login,html_url:s.html_url,avatar_url:s.avatar_url})):null,milestone:a.data.milestone?{id:a.data.milestone.id,url:a.data.milestone.url,number:a.data.milestone.number,state:a.data.milestone.state,title:a.data.milestone.title,description:a.data.milestone.description,open_issues:a.data.milestone.open_issues,closed_issues:a.data.milestone.closed_issues,created_at:a.data.milestone.created_at,updated_at:a.data.milestone.updated_at,due_on:a.data.milestone.due_on,closed_at:a.data.milestone.closed_at}:null,labels:a.data.labels&&a.data.labels.length>0?a.data.labels.map(s=>({id:s.id,name:s.name,color:s.color})):null,commits:a.data.commits,additions:a.data.additions,deletions:a.data.deletions,changed_files:a.data.changed_files};a.data=o;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u4FE1\u606F\u5931\u8D25\uFF1A ${a.message}`)}}async get_get_pull_request_list(e){if(!(e.owner||e.repo))throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.state&&(t.state=s.state),s.base&&(t.base=s.base),s.sort&&(t.sort=s.sort),s.direction&&!s.sort&&(t.direction=s.direction),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/pulls`,t);if(r.data){let i=r.data.map(n=>({id:n.id,html_url:n.html_url,number:n.number,state:n.state,locked:n.locked,title:n.title,body:n.body,draft:n.draft,created_at:n.created_at,updated_at:n.updated_at,closed_at:n.closed_at,merged_at:n.merged_at,user:{id:n.user.id,name:n.user.name,login:n.user.login,html_url:n.user.html_url,avatar_url:n.user.avatar_url},base:{label:n.base.label,ref:n.base.ref,sha:n.base.sha,user:{id:n.base.user.id,name:n.base.user.name,login:n.base.user.login,html_url:n.base.user.html_url,avatar_url:n.base.user.avatar_url},repo:{id:n.base.repo.id,owner:n.base.repo.owner,name:n.base.repo.name,full_name:n.base.repo.full_name}},head:{label:n.head.label,ref:n.head.ref,sha:n.head.sha,user:{id:n.head.user.id,name:n.head.user.name,login:n.head.user.login,html_url:n.head.user.html_url,avatar_url:n.head.user.avatar_url},repo:{id:n.head.repo.id,owner:n.head.repo.owner,name:n.head.repo.name,full_name:n.head.repo.full_name}},assignee:n.assignee?{id:n.assignee.id,name:n.assignee.name,login:n.assignee.login,html_url:n.assignee.html_url,avatar_url:n.assignee.avatar_url}:null,assignees:n.assignees&&n.assignees.length>0?n.assignees.map(l=>({id:l.id,name:l.name,login:l.login,html_url:l.html_url,email:l.email,avatar_url:l.avatar_url})):null,milestone:n.milestone?{id:n.milestone.id,url:n.milestone.url,number:n.milestone.number,state:n.milestone.state,title:n.milestone.title,description:n.milestone.description,open_issues:n.milestone.open_issues,closed_issues:n.milestone.closed_issues,created_at:n.milestone.created_at,updated_at:n.milestone.updated_at,closed_at:n.milestone.closed_at,due_on:n.milestone.due_on}:null,labels:n.labels&&n.labels.length>0?n.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,commits:n.commits,additions:n.additions,deletions:n.deletions,changed_files:n.changed_files}));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u5217\u8868\u5931\u8D25\uFF1A ${a.message}`)}}async create_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.head)throw new Error(lt);if(!e.base)throw new Error(ut);if(!("issue"in e)&&!("title"in e))throw new Error(at);try{this.setRequestConfig({token:this.userToken});let a={};if("issue"in e){if(!e.issue)throw new Error(tt);a.issue=e.issue;}else if("title"in e){if(!e.title)throw new Error(Be);a.title=e.title,e.body&&(a.body=e.body);}e.head&&(a.head=e.head),e.head_repo&&(a.head_repo=e.head_repo),e.base&&(a.base=e.base),e.draft&&(a.draft=e.draft);let{owner:o,repo:s}=e,t=await this.post(`/repos/${o}/${s}/pulls`,a);if(t.statusCode===403)throw new Error(_);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,state:t.data.state,locked:t.data.locked,title:t.data.title,body:t.data.body,draft:t.data.draft,created_at:t.data.created_at,merged_at:t.data.merged_at,updated_at:t.data.updated_at,closed_at:t.data.closed_at,user:{id:t.data.user.id,name:t.data.user.name,login:t.data.user.login,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url},base:{label:t.data.base.label,ref:t.data.base.ref,sha:t.data.base.sha,user:{id:t.data.base.user.id,name:t.data.base.user.name,login:t.data.base.user.login,html_url:t.data.base.user.html_url,avatar_url:t.data.base.user.avatar_url},repo:{id:t.data.base.repo.id,owner:t.data.base.repo.owner,name:t.data.base.repo.name,full_name:t.data.base.repo.full_name}},head:{label:t.data.head.label,ref:t.data.head.ref,sha:t.data.head.sha,user:{id:t.data.head.user.id,name:t.data.head.user.name,login:t.data.head.user.login,html_url:t.data.head.user.html_url,avatar_url:t.data.head.user.avatar_url},repo:{id:t.data.head.repo.id,owner:t.data.head.repo.owner,name:t.data.head.repo.name,full_name:t.data.head.repo.full_name}},assignee:t.data.assignee?{id:t.data.assignee.id,name:t.data.assignee.name,login:t.data.assignee.login,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url}:null,assignees:t.data.assignees&&t.data.assignees.length>0?t.data.assignees.map(i=>({id:i.id,name:i.name,login:i.login,html_url:i.html_url,avatar_url:i.avatar_url})):null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,due_on:t.data.milestone.due_on,closed_at:t.data.milestone.closed_at}:null,labels:t.data.labels&&t.data.labels.length>0?t.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,commits:t.data.commits,additions:t.data.additions,deletions:t.data.deletions,changed_files:t.data.changed_files};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async update_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};e.title&&(a.title=e.title),e.body&&(a.body=e.body),e.state&&(a.state=e.state);let{owner:o,repo:s,pr_number:t}=e,r=await this.patch(`/repos/${o}/${s}/pulls/${t}`,null,a);if(r.statusCode===403)throw new Error(_);if(r.data){let i={id:r.data.id,html_url:r.data.html_url,number:r.data.number,state:r.data.state,locked:r.data.locked,title:r.data.title,body:r.data.body,draft:r.data.draft,created_at:r.data.created_at,merged_at:r.data.merged_at,updated_at:r.data.updated_at,closed_at:r.data.closed_at,user:{id:r.data.user.id,name:r.data.user.name,login:r.data.user.login,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url},base:{label:r.data.base.label,ref:r.data.base.ref,sha:r.data.base.sha,user:{id:r.data.base.user.id,name:r.data.base.user.name,login:r.data.base.user.login,html_url:r.data.base.user.html_url,avatar_url:r.data.base.user.avatar_url},repo:{id:r.data.base.repo.id,owner:r.data.base.repo.owner,name:r.data.base.repo.name,full_name:r.data.base.repo.full_name}},head:{label:r.data.head.label,ref:r.data.head.ref,sha:r.data.head.sha,user:{id:r.data.head.user.id,name:r.data.head.user.name,login:r.data.head.user.login,html_url:r.data.head.user.html_url,avatar_url:r.data.head.user.avatar_url},repo:{id:r.data.head.repo.id,owner:r.data.head.repo.owner,name:r.data.head.repo.name,full_name:r.data.head.repo.full_name}},assignee:r.data.assignee?{id:r.data.assignee.id,name:r.data.assignee.name,login:r.data.assignee.login,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url}:null,assignees:r.data.assignees&&r.data.assignees.length>0?r.data.assignees.map(n=>({id:n.id,name:n.name,login:n.login,html_url:n.html_url,avatar_url:n.avatar_url})):null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,due_on:r.data.milestone.due_on,closed_at:r.data.milestone.closed_at}:null,labels:r.data.labels&&r.data.labels.length>0?r.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,commits:r.data.commits,additions:r.data.additions,deletions:r.data.deletions,changed_files:r.data.changed_files};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async merge_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};if(e.commit_title&&(a.commit_title=e.commit_title),e.commit_message&&(a.commit_message=e.commit_message),e.sha&&(a.sha=e.sha),e.merge_method){let i=["merge","squash","rebase"];a.merge_method=i.includes(e.merge_method)?e.merge_method:i[0];}let{owner:o,repo:s,pr_number:t}=e,r=await this.put(`/repos/${o}/${s}/pulls/${t}/merge`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z);case 405:throw new Error(dt);case 409:throw new Error(pt)}if(r.statusCode===200&&r.data){let i={sha:r.data.sha,merged:r.data.merged,message:r.data.message};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u5408\u5E76\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async get_pull_request_files_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/files`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let i=r.data.map(n=>({sha:n.sha,filename:n.filename,status:n.status,additions:n.additions,deletions:n.deletions,changes:n.changes,blob_url:n.blob_url,raw_url:n.raw_url,patch:n.patch}));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u6587\u4EF6\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_pull_request_comment_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/pulls/comments/${s}`);switch(t.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(t.data){let r={id:t.data.id,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,avatar_url:t.data.user.avatar_url,html_url:t.data.user.html_url},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_pull_request_comments_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a={};e.direction&&(a.direction=e.direction),e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/comments`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(r.data){let i=r.data.map(n=>({id:n.id,body:n.body,user:{id:n.user.id,login:n.user.login,name:n.user.name,html_url:n.user.html_url,avatar_url:n.user.avatar_url},created_at:n.created_at,updated_at:n.updated_at}));r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error(x);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,pr_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/pulls/${s}/comments`,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let i={id:r.data.id,body:r.data.body};r.data=i;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(W);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,body:t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${s}`,null,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let i=!1;return r.statusCode===200&&(i=!0),r.data={success:i},r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async edit_pull_request_comment(e){return await this.update_pull_request_comment(e)}async delete_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(W);try{let a=await this.delete(`/repos/${e.owner}/${e.repo}/pulls/comments/${e.comment_id}`);switch(a.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let o=!1;return a.statusCode===204&&(o=!0),a.data={success:o},a}catch(a){throw new Error(`[GitHub] \u5220\u9664\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}};});var N,h,E=w(()=>{b();V();Ce();N="github",h=class{base_url;api_url;jwtToken;userToken;Private_Key;Client_ID;Client_Secret;WebHook_Secret;format;currentRequestConfig;proxy;constructor(e){this.Private_Key="Private_Key"in e?e.Private_Key:null,this.Client_ID="Client_ID"in e?e.Client_ID:null,this.Client_Secret="Client_Secret"in e?e.Client_Secret:null,this.WebHook_Secret="WebHook_Secret"in e?e.WebHook_Secret:null,this.validateAppClient(),this.jwtToken=this.generate_jwt(),this.base_url=q(N),this.api_url=Te(N),this.userToken="access_token"in e?e.access_token:null,this.currentRequestConfig={url:this.api_url,token:null,tokenType:"Bearer"},this.format=e.format??false;}get type(){return N}get is_app_client(){return !!(this.Client_ID&&this.Client_Secret&&this.Private_Key)}validateAppClient(){if(!this.is_app_client)return;let{Private_Key:e,Client_ID:a,Client_Secret:o}=this,s=e!==null&&e!=="",t=a!==null&&a!=="",r=o!==null&&o!=="",i=[];if(t||i.push("Client_ID"),r||i.push("Client_Secret"),s||i.push("Private_Key"),i.length!==0){if(i.length>0&&i.length<3){let n=i[0];if(n==="Client_ID")throw new Error(Ue);if(n==="Client_Secret")throw new Error(Oe);if(n==="Private_Key")throw new Error(Ne)}if(i.length===3)throw new Error(De)}}async get_app(){let{App:e}=await Promise.resolve().then(()=>(Le(),Dt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(Ee(),It));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(ke(),$t));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(ve(),xt));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(Me(),qt));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>($e(),At));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>(xe(),Lt));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(qe(),Ht));return this.webhook=new e(this),this.webhook}async get_pull_request(){let{Pull_Request:e}=await Promise.resolve().then(()=>(Ae(),Gt));return this.pull_request=new e(this),this.pull_request}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new URL$1(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(ne)}switch(e?.type){case "common":case "reverse":this.base_url=q(N,e.address,e.type),this.api_url=Te(N,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(ne)}}setToken(e){if(!e.startsWith("ghu_")&&!e.startsWith("ghp_"))throw this.userToken=null,new Error(v);return this.userToken=e,this}generate_jwt(e){let a=e??this.Private_Key;if(!this.is_app_client&&!a)throw new Error(f);let o={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return na.sign(o,a,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:o}=this.currentRequestConfig,s=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new K(e??this.api_url,o,a,s,t)}async get(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().get(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHub] GET \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async post(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().post(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] POST \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async patch(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().patch(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().put(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] PUT \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async delete(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().delete(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var Dt={};k(Dt,{App:()=>se});var se,Le=w(()=>{b();E();se=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_app_info(e){if(!this.is_app_client)throw new Error(f);let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(Fe);if(!a)throw new Error(v);try{this.setRequestConfig({token:a});let o=await this.get(`/apps/${e.app_slug}`);if(o.statusCode===200){let s={id:o.data.id,name:o.data.name,client_id:o.data.client_id,slug:o.data.slug,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,email:o.data.owner.email,html_url:o.data.owner.html_url,avatar_url:o.data.owner.avatar_url,type:capitalize(o.data.owner.type.toLowerCase())},description:o.data.description,external_url:o.data.external_url,html_url:o.data.html_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_app_info_by_auth(){if(!this.is_app_client)throw new Error(f);try{this.setRequestConfig({url:this.api_url,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!this.is_app_client)throw new Error(f);if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/installation`);switch(s.statusCode){case 404:throw new Error(C);case 301:throw new Error(Je)}if(s.data){let t={id:s.data.id,html_url:s.data.html_url,app_id:s.data.app_id,app_slug:s.data.app_slug,target_id:s.data.target_id,target_type:s.data.target_type,account:{id:s.data.account.id,login:s.data.account.login,name:s.data.account.name,email:s.data.account.email,html_url:s.data.account.html_url,avatar_url:s.data.account.avatar_url,type:capitalize(s.data.account.type.toLowerCase())},repository_selection:s.data.repository_selection,access_tokens_url:s.data.access_tokens_url,repositories_url:s.data.repositories_url,permissions:s.data.permissions,events:s.data.events,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}async is_app_installed_in_repo(e){return !!await this.get_app_installation_by_repo({owner:e.owner,repo:e.repo})}};});b();Pe();var He={};k(He,{App:()=>se,Auth:()=>J,Commit:()=>X,GitHubClient:()=>h,Issue:()=>Q,Org:()=>te,Pull_Request:()=>re,Repo:()=>Z,User:()=>ee,WebHook:()=>ae});Le();Ee();E();ke();ve();xe();Ae();Me();$e();qe();var Ge=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new h(e.github);}};var ns=Ge;
6
- export{Ge as Client,h as GitHubClient,ra as create_state_id,ns as default,m as formatDate,fe as get_langage_color,Zt as get_local_repo_default_branch,Qt as get_relative_time,ye as get_remote_repo_default_branch,He as github};
5
+ `):null},tree:{url:u.commit.tree.url,sha:u.commit.tree.sha}},parents:u.parents.map(T=>({sha:T.sha,url:T.url})),stats:{additions:u.stats.additions,deletions:u.stats.deletions,total:u.stats.total},files:u.files.map(T=>({sha:T.sha,filename:T.filename,status:T.status,additions:T.additions,deletions:T.deletions,changes:T.changes,blob_url:T.blob_url,raw_url:T.raw_url}))}}));i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u63D0\u4EA4\u5217\u8868\u5931\u8D25: ${a.message}`)}}};});var $t={};k($t,{Issue:()=>Q});var Q,ve=w(()=>{b();Pe();E();Q=class extends h{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 new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.get(`/repos/${a}/${o}/issues/${Number(s)}`);switch(t.statusCode){case 404:throw new Error(P);case 301:throw new Error(et)}if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:this.format?await m(t.data.closed_at):t.data.closed_at,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BE6\u60C5\u5931\u8D25: ${a.message}`)}}async get_issues_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.milestone&&(t.milestone=s.milestone.toString()),s.state&&(t.state=s.state),s.assignee&&(t.assignee=s.assignee),s.creator&&(t.creator=s.creator),s.labels&&(t.labels=s.labels),s.sort&&(t.sort=s.sort),s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues`,n=await this.get(r,t);if(n.statusCode===401)throw new Error(_);if(n.data){let i=n.data.map(l=>({id:l.id,html_url:l.html_url,number:l.number,comments:l.comments,state:l.state,state_reason:l.state_reason,title:l.title,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},labels:l.labels?l.labels.map(u=>({id:u.id,name:u.name,color:u.color})):null,assignee:l.assignee?{id:l.assignee.id,login:l.assignee.login,name:l.assignee.name,email:l.assignee.email,html_url:l.assignee.html_url,avatar_url:l.assignee.avatar_url,type:capitalize(l.assignee.type.toLowerCase())}:null,milestone:l.milestone?{id:l.milestone.id,url:l.milestone.url,number:l.milestone.number,state:l.milestone.state,title:l.milestone.title,description:l.milestone.description,open_issues:l.milestone.open_issues,closed_issues:l.milestone.closed_issues,created_at:l.milestone.created_at,updated_at:l.milestone.updated_at,closed_at:l.milestone.closed_at,due_on:l.milestone.due_on}:null,closed_at:l.closed_at,created_at:l.created_at,updated_at:l.updated_at}));n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u7684\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.title)throw new Error(rt);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={...s,...s.labels&&{labels:Array.isArray(s.labels)?s.labels:[s.labels]},...s.assignees&&{assignees:Array.isArray(s.assignees)?s.assignees:[s.assignees]}},r=await this.post(`/repos/${a}/${o}/issues`,t);switch(r.statusCode){case 403:throw new Error(_);case 301:throw new Error(C)}if(r.data&&r.data){let n={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub]\u521B\u5EFA\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async update_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={...t,...t.labels&&{labels:Array.isArray(t.labels)?t.labels:[t.labels]},...t.assignees&&{assignees:Array.isArray(t.assignees)?t.assignees:[t.assignees]}},n=await this.patch(`/repos/${a}/${o}/issues/${Number(s)}`,null,r);switch(n.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(n.data&&n.data){let i={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async open_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"open"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6253\u5F00\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async reopen_issue(e){return this.open_issue(e)}async close_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.patch(`/repos/${a}/${o}/issues/${s}`,null,{state:"closed"});switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}if(t.data&&t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,comments:t.data.comments,state:t.data.state,state_reason:t.data.state_reason,title:t.data.title,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},labels:t.data.labels?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,assignee:t.data.assignee?{id:t.data.assignee.id,login:t.data.assignee.login,name:t.data.assignee.name,email:t.data.assignee.email,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url,type:capitalize(t.data.assignee.type.toLowerCase())}:null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,closed_at:t.data.milestone.closed_at,due_on:t.data.milestone.due_on}:null,closed_at:t.data.closed_at,created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u5173\u95ED\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async lock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,lock_reason:t}=e,r=await this.put(`/repos/${a}/${o}/issues/${Number(s)}`,{locked:!0,lock_reason:t});switch(r.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let n;return r.statusCode===204?n={info:ge}:n={info:ot},r.data=n,r}catch(a){throw new Error(`[GitHub] \u9501\u5B9A\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async unlock_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/${s}/lock`);switch(t.statusCode){case 404:throw new Error(P);case 403:throw new Error(_);case 301:throw new Error(C)}let r;return t.statusCode===204?r={info:ge}:r={info:it},t.data=r,t}catch(a){throw new Error(`[GitHub] \u89E3\u9501\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async get_repo_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.sort&&(t.sort=s.sort),s.direction&&s.direction&&(t.direction=s.direction),s.since&&(t.since=s.since),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=`/repos/${a}/${o}/issues/comments/`,n=await this.get(r,t);if(n.statusCode===404)throw new Error(R);if(n.data){let i=n.data.map(l=>({id:l.id,html_url:l.html_url,body:l.body,user:{id:l.user.id,login:l.user.login,name:l.user.name,email:l.user.email,html_url:l.user.html_url,avatar_url:l.user.avatar_url,type:capitalize(l.user.type.toLowerCase())},created_at:l.created_at,updated_at:l.updated_at}));n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comments_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(M);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.since&&(r.since=t.since),t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let n=`/repos/${a}/${o}/issues/${Number(s)}/comments`,i=await this.get(n,r);if(i.statusCode===404)throw new Error(R);if(i.data){let l=i.data.map(u=>({id:u.id,html_url:u.html_url,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:capitalize(u.user.type.toLowerCase())},created_at:u.created_at,updated_at:u.updated_at}));i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_issue_comment_info(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,email:t.data.user.email,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url,type:capitalize(t.data.user.type.toLowerCase())},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.body)throw new Error(st);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/issues/${Number(s)}/comments`,{body:t});if(r.statusCode===404)throw new Error(R);if(r.data){let n={id:r.data.id,html_url:`${q(this.type)}/${a}/${o}/issues/${s}#${r.data.id}`,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u8BAE\u9898\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,...t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${Number(s)}`,null,t);if(r.statusCode===404)throw new Error(R);if(r.data){let n={id:r.data.id,html_url:r.data.html_url,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async remove_issue_comment(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.comment_id)throw new Error(F);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.delete(`/repos/${a}/${o}/issues/comments/${Number(s)}`);if(t.statusCode===404)throw new Error(R);let r;return t.statusCode===204?r={info:wt}:r={info:nt},t.data=r,t}catch(a){throw new Error(`[GitHub] \u5220\u9664\u8BAE\u9898\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async delete_issue_comment(e){return this.remove_issue_comment(e)}async get_sub_issue_list(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,...t}=e,r={};t.per_page&&(r.per_page=t.per_page.toString()),t.page&&(r.page=t.page.toString());let n=`/repos/${a}/${o}/issues/${Number(s)}/sub_issues`,i=await this.get(n,r);if(i.statusCode===404)throw new Error(P);if(i.data){let l=i.data.map(u=>({id:u.id,html_url:u.html_url,number:u.number,comments:u.comments,state:u.state,state_reason:u.state_reason,title:u.title,body:u.body,user:{id:u.user.id,login:u.user.login,name:u.user.name,email:u.user.email,html_url:u.user.html_url,avatar_url:u.user.avatar_url,type:capitalize(u.user.type.toLowerCase())},labels:u.labels?u.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:u.assignee?{id:u.assignee.id,login:u.assignee.login,name:u.assignee.name,email:u.assignee.email,html_url:u.assignee.html_url,avatar_url:u.assignee.avatar_url,type:capitalize(u.assignee.type.toLowerCase())}:null,milestone:u.milestone?{id:u.milestone.id,url:u.milestone.url,number:u.milestone.number,state:u.milestone.state,title:u.milestone.title,description:u.milestone.description,open_issues:u.milestone.open_issues,closed_issues:u.milestone.closed_issues,created_at:u.milestone.created_at,updated_at:u.milestone.updated_at,closed_at:u.milestone.closed_at,due_on:u.milestone.due_on}:null,closed_at:u.closed_at,created_at:u.created_at,updated_at:u.updated_at}));i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B50\u8BAE\u9898\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,replace_parent:r}=e,n=await this.post(`/repos/${a}/${o}/issues/${s}/sub_issues`,{sub_issue_id:t,replace_parent:r});if(n.statusCode===404)throw new Error(P);if(n.data){let i={id:n.data.id,html_url:n.data.html_url,number:n.data.number,comments:n.data.comments,state:n.data.state,state_reason:n.data.state_reason,title:n.data.title,body:n.data.body,user:{id:n.data.user.id,login:n.data.user.login,name:n.data.user.name,email:n.data.user.email,html_url:n.data.user.html_url,avatar_url:n.data.user.avatar_url,type:capitalize(n.data.user.type.toLowerCase())},labels:n.data.labels?n.data.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,assignee:n.data.assignee?{id:n.data.assignee.id,login:n.data.assignee.login,name:n.data.assignee.name,email:n.data.assignee.email,html_url:n.data.assignee.html_url,avatar_url:n.data.assignee.avatar_url,type:capitalize(n.data.assignee.type.toLowerCase())}:null,milestone:n.data.milestone?{id:n.data.milestone.id,url:n.data.milestone.url,number:n.data.milestone.number,state:n.data.milestone.state,title:n.data.milestone.title,description:n.data.milestone.description,open_issues:n.data.milestone.open_issues,closed_issues:n.data.milestone.closed_issues,created_at:n.data.milestone.created_at,updated_at:n.data.milestone.updated_at,closed_at:n.data.milestone.closed_at,due_on:n.data.milestone.due_on}:null,closed_at:n.data.closed_at,created_at:n.data.created_at,updated_at:n.data.updated_at};n.data=i;}return n}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async remove_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t}=e,r=await this.delete(`/repos/${a}/${o}/issues/${s}/sub_issue`,null,{sub_issue_id:t});if(r.statusCode===404)throw new Error(P);if(r.data){let n={id:r.data.id,html_url:r.data.html_url,number:r.data.number,comments:r.data.comments,state:r.data.state,state_reason:r.data.state_reason,title:r.data.title,body:r.data.body,user:{id:r.data.user.id,login:r.data.user.login,name:r.data.user.name,email:r.data.user.email,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url,type:capitalize(r.data.user.type.toLowerCase())},labels:r.data.labels?r.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,assignee:r.data.assignee?{id:r.data.assignee.id,login:r.data.assignee.login,name:r.data.assignee.name,email:r.data.assignee.email,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url,type:capitalize(r.data.assignee.type.toLowerCase())}:null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,closed_at:r.data.milestone.closed_at,due_on:r.data.milestone.due_on}:null,closed_at:r.data.closed_at,created_at:r.data.created_at,updated_at:r.data.updated_at};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u5220\u9664\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}async delete_sub_issue(e){return this.remove_sub_issue(e)}async reprioritize_sub_issue(e){if(!e.owner||!e.repo)throw new Error(p);if(!e.issue_number)throw new Error(R);if(!e.sub_issue_id)throw new Error(W);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,issue_number:s,sub_issue_id:t,...r}=e,n={};r.before_id&&!r.after_id&&(n.before_id=r.before_id.toString()),r.after_id&&!r.before_id&&(n.after_id=r.after_id.toString());let i=`/repos/${a}/${o}/issues/${s}/sub_issues/priority`,l=await this.patch(i,n,{sub_issue_id:String(t)});if(l.statusCode===404)throw new Error(P);if(l.data){let u={id:l.data.id,html_url:l.data.html_url,number:l.data.number,comments:l.data.comments,state:l.data.state,state_reason:l.data.state_reason,title:l.data.title,body:l.data.body,user:{id:l.data.user.id,login:l.data.user.login,name:l.data.user.name,email:l.data.user.email,html_url:l.data.user.html_url,avatar_url:l.data.user.avatar_url,type:capitalize(l.data.user.type.toLowerCase())},labels:l.data.labels?l.data.labels.map(c=>({id:c.id,name:c.name,color:c.color})):null,assignee:l.data.assignee?{id:l.data.assignee.id,login:l.data.assignee.login,name:l.data.assignee.name,email:l.data.assignee.email,html_url:l.data.assignee.html_url,avatar_url:l.data.assignee.avatar_url,type:capitalize(l.data.assignee.type.toLowerCase())}:null,milestone:l.data.milestone?{id:l.data.milestone.id,url:l.data.milestone.url,number:l.data.milestone.number,state:l.data.milestone.state,title:l.data.milestone.title,description:l.data.milestone.description,open_issues:l.data.milestone.open_issues,closed_issues:l.data.milestone.closed_issues,created_at:l.data.milestone.created_at,updated_at:l.data.milestone.updated_at,closed_at:l.data.milestone.closed_at,due_on:l.data.milestone.due_on}:null,closed_at:l.data.closed_at,created_at:l.data.created_at,updated_at:l.data.updated_at};l.data=u;}return l}catch(a){throw new Error(`[GitHub] \u91CD\u65B0\u6392\u5E8F\u5B50\u8BAE\u9898\u5931\u8D25: ${a.message}`)}}};});var qt={};k(qt,{Repo:()=>Z});var Z,Me=w(()=>{b();E();Z=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_repos_list(e){if(!e.org)throw new Error(G);try{this.setRequestConfig({token:this.userToken});let{org:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/orgs/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(G);case 401:throw new Error(y)}if(r.data){let n=await Promise.all(r.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name??null,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email??null},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:this.format?await m(i.created_at):i.created_at,updated_at:this.format?await m(i.updated_at):i.updated_at,pushed_at:this.format?await m(i.pushed_at):i.pushed_at})));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list_by_token(e){try{this.setRequestConfig({token:this.userToken});let{...a}=e,o={};!e?.visibility&&!e?.affiliation&&a?.type&&(o.type=a.type),a?.visibility&&(o.visibility=a.visibility),a?.affiliation&&(o.affiliation=a.affiliation),a?.sort&&(o.sort=a.sort),a?.direction&&(o.direction=a.direction),a?.per_page&&(o.per_page=a.per_page.toString()),a?.page&&(o.page=a.page.toString());let t=await this.get("/uses/repos",o);if(t.statusCode===401)throw new Error(y);if(t.data){let r=await Promise.all(t.data.map(async n=>({id:n.id,name:n.name,full_name:n.full_name,owner:{id:n.owner.id,login:n.owner.login,name:n.owner.name,avatar_url:n.owner.avatar_url,type:n.owner.type,html_url:n.owner.html_url,email:n.owner.email},public:!n.private,private:n.private,visibility:n.private?"private":"public",fork:n.fork,archived:n.archived,disabled:n.disabled,html_url:n.html_url,description:n.description,stargazers_count:n.stargazers_count,watchers_count:n.watchers_count,language:n.language,forks_count:n.forks_count,open_issues_count:n.open_issues_count,default_branch:n.default_branch,created_at:this.format?await m(n.created_at):n.created_at,updated_at:this.format?await m(n.updated_at):n.updated_at,pushed_at:this.format?await m(n.pushed_at):n.pushed_at})));t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_user_repos_list(e){try{if(!e.username)throw new Error(x);this.setRequestConfig({token:this.userToken});let{username:a,...o}=e,s={};o?.type&&(s.type=o.type),o?.sort&&(s.sort=o.sort),o?.direction&&(s.direction=o.direction),o?.per_page&&(s.per_page=o.per_page.toString()),o?.page&&(s.page=o.page.toString());let t=`/users/${a}/repos`,r=await this.get(t,s);switch(r.statusCode){case 404:throw new Error(H);case 401:throw new Error(y)}if(r.data){let n=await Promise.all(r.data.map(async i=>({id:i.id,name:i.name,full_name:i.full_name,owner:{id:i.owner.id,login:i.owner.login,name:i.owner.name,avatar_url:i.owner.avatar_url,type:i.owner.type,html_url:i.owner.html_url,email:i.owner.email},public:!i.private,private:i.private,visibility:i.private?"private":"public",fork:i.fork,archived:i.archived,disabled:i.disabled,html_url:i.html_url,description:i.description,stargazers_count:i.stargazers_count,watchers_count:i.watchers_count,language:i.language,forks_count:i.forks_count,open_issues_count:i.open_issues_count,default_branch:i.default_branch,created_at:this.format?await m(i.created_at):i.created_at,updated_at:this.format?await m(i.updated_at):i.updated_at,pushed_at:this.format?await m(i.pushed_at):i.pushed_at})));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u4ED3\u5E93\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_repo_info(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(D)}if(s.data){let t={id:s.data.id,name:s.data.name,full_name:s.data.full_name,owner:{id:s.data.owner.id,login:s.data.owner.login,name:s.data.owner.name,avatar_url:s.data.owner.avatar_url,type:s.data.owner.type,html_url:s.data.owner.html_url,email:s.data.owner.email},public:!s.data.private,private:s.data.private,visibility:s.data.private?"private":"public",fork:s.data.fork,archived:s.data.archived,disabled:s.data.disabled,html_url:s.data.html_url,description:s.data.description,stargazers_count:s.data.stargazers_count,watchers_count:s.data.watchers_count,language:s.data.language,forks_count:s.data.forks_count,open_issues_count:s.data.open_issues_count,default_branch:s.data.default_branch,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at,pushed_at:this.format?await m(s.data.pushed_at):s.data.pushed_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_repo_languages_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/languages`);switch(s.statusCode){case 401:throw new Error(y);case 404:throw new Error(C)}if(s.data){let t=Object.entries(s.data),r=t.reduce((l,[,u])=>l+u,0),i={languages:t.map(([l,u])=>({language:l,color:fe(l.toLowerCase()),percent:Number((u/r*100).toFixed(2)),bytes:u}))};s.data=i;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_org_repo(e){try{let{org:a,...o}=e;if(!a||!e.name)throw new Error(Ze);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility&&(s.private=o.visibility.toString()),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post(`/orgs/${a}/repos`,s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7EC4\u7EC7\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_user_repo(e){try{let{owner:a,...o}=e;if(!a||!e.name)throw new Error(p);let s={};s.name=o.name,o.description&&(s.description=o.description.toString()),o.homepage&&(s.homepage=o.homepage.toString()),o.visibility==="private"&&(s.private=!0),o.has_wiki&&(s.has_wiki=o.has_wiki),o.auto_init&&(s.auto_init=o.auto_init);let t=await this.post("/user/repos",s);if(t.statusCode===401)throw new Error(y);if(t.data){let r={id:t.data.id,name:t.data.name,full_name:t.data.full_name,owner:{id:t.data.owner.id,login:t.data.owner.login,name:t.data.owner.name,avatar_url:t.data.owner.avatar_url,type:t.data.owner.type,html_url:t.data.owner.html_url,email:t.data.owner.email},public:!t.data.private,private:t.data.private,visibility:t.data.private?"private":"public",fork:t.data.fork,archived:t.data.archived,disabled:t.data.disabled,html_url:t.data.html_url,description:t.data.description,stargazers_count:t.data.stargazers_count,watchers_count:t.data.watchers_count,language:t.data.language,forks_count:t.data.forks_count,open_issues_count:t.data.open_issues_count,default_branch:t.data.default_branch,created_at:this.format?await m(t.data.created_at):t.data.created_at,updated_at:this.format?await m(t.data.updated_at):t.data.updated_at,pushed_at:this.format?await m(t.data.pushed_at):t.data.pushed_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u7528\u6237\u4ED3\u5E93\u5931\u8D25: ${a.message}`)}}async create_repo(e){return this.create_user_repo(e)}async get_collaborators_list(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o}=e,{...s}=e,t={};s.affiliation&&(t.milestone=s.affiliation.toString()),s.permission&&(t.permission=s.permission.toString()),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/collaborators`,t);if(r.data){let n=await Promise.all(r.data.map(i=>({id:i.id,login:i.login,avatar_url:i.avatar_url,email:i.email,name:i.name,permissions:i.permissions,role_name:i.role_name})));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u534F\u4F5C\u8005\u5217\u8868\u5931\u8D25: ${a.message}`)}}async add_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.put(`/repos/${a}/${o}/collaborators/${s}`,{permission:e.permission??"pull"});if(t.statusCode===404)throw new Error(y);if(t.statusCode===422){let r=t.data.message;if(r&&r.includes("is not a valid permission"))throw new Error(_)}if(t.data){let r={id:t.data.inviter.id,login:t.data.inviter.login,name:t.data.inviter.name,html_url:t.data.repository.html_url,permissions:t.data.permissions};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async remove_collaborator(e){if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,username:s}=e,t=await this.delete(`/repos/${a}/${o}/collaborators/${s}`);if(t.statusCode===404)throw new Error(y);return t.status&&t.statusCode===204?t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u6210\u529F`}:t.data={info:`\u79FB\u9664\u534F\u4F5C\u8005${s}\u5931\u8D25`},t}catch(a){throw new Error(`[GitHub] \u79FB\u9664\u534F\u4F5C\u8005\u5931\u8D25: ${a.message}`)}}async delete_collaborator(e){return this.remove_collaborator(e)}async get_repo_visibility(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.visibility}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u53EF\u89C1\u6027\u5931\u8D25: ${a.message}`)}}async get_repo_default_branch(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e,s;try{let t=this.base_url+"/"+a+"/"+o;s=await ye(t);}catch{s=(await this.get_repo_info({owner:a,repo:o})).data.default_branch;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u9ED8\u8BA4\u5206\u652F\u5931\u8D25: ${a.message}`)}}async get_repo_main_language(e){if(!e.owner||!e.repo)throw new Error(p);try{let{owner:a,repo:o}=e;return (await this.get_repo_info({owner:a,repo:o})).data.language}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u4ED3\u5E93\u8BED\u8A00\u5931\u8D25: ${a.message}`)}}};});var At={};k(At,{User:()=>ee});var ee,xe=w(()=>{b();E();ee=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_user_info(e){let a=e.access_token??this.userToken;if(!e.username)throw new Error(D);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:a});let o=await this.get(`/users/${e.username}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(D);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_user_id(e){let a=e.access_token??this.userToken;if(!e.user_id)throw new Error(Xe);if(a&&!a?.startsWith("ghu_"))throw new Error(S);try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/user/${e.user_id}`);if(o.statusCode===401)throw new Error(_);if(o.statusCode===404)throw new Error(H);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name||null,type:capitalize(o.data.type.toLowerCase()),html_url:o.data.html_url,avatar_url:o.data.avatar_url,email:o.data.email||null,bio:o.data.bio||null,blog:o.data.blog||null,public_repos:o.data.public_repos,followers:o.data.followers,following:o.data.following};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u901A\u8FC7\u7528\u6237id\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_user_info_by_auth(){if(!this.userToken)throw new Error(v);try{this.setRequestConfig({token:this.userToken});let e=await this.get("/user");switch(e.statusCode){case 401:throw new Error(_);case 404:throw new Error(H)}if(e.data){let a={id:e.data.id,login:e.data.login,name:e.data.name||null,type:capitalize(e.data.type.toLowerCase()),html_url:e.data.html_url,avatar_url:e.data.avatar_url,email:e.data.email||null,bio:e.data.bio||null,blog:e.data.blog||null,public_repos:e.data.public_repos,followers:e.data.followers,following:e.data.following};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u6388\u6743\u7528\u6237\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_user_info_by_token(){return this.get_user_info_by_auth()}async get_user_contribution(e){try{if(!e.username)throw new Error(x);if((await this.get_user_info({username:e.username})).data.type==="Organization")throw new Error(`${Qe}\u83B7\u53D6\u8D21\u732E\u65E5\u5386`);this.setRequestConfig({url:this.base_url});let o=await this.get(`/${e.username}`,{action:"show",controller:"profiles",tab:"contributions",user_id:e.username},{"X-Requested-With":"XMLHttpRequest"});if(!o.success)throw new Error("\u83B7\u53D6\u7528\u6237\u8D21\u732E\u6570\u636E\u5931\u8D25");if(o.statusCode===404)throw new Error(x);let s=await kt(o.data);return {...o,data:s}}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u7528\u6237\u8D21\u732E\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_user_id(){return (await this.get_user_info_by_auth()).data.id}async get_username(){return (await this.get_user_info_by_auth()).data.login}async get_nickname(){return (await this.get_user_info_by_auth()).data.name}async get_user_email(){return (await this.get_user_info_by_auth()).data.email}async get_avatar_url(){return (await this.get_user_info_by_auth()).data.avatar_url}};});var Lt={};k(Lt,{Org:()=>te});var te,$e=w(()=>{b();V();E();te=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_org_info(e){if(!e.org)throw new Error(de);let{org:a}=e;try{this.setRequestConfig({token:this.userToken});let o=await this.get(`/orgs/${a}`);if(o.statusCode===404)throw new Error(G);if(o.data){let s={id:o.data.id,login:o.data.login,name:o.data.name,avatar_url:o.data.avatar_url,description:o.data.description,html_url:o.data.html_url};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u7EC4\u7EC7\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async add_member(e){if(!e.org)throw new Error(de);if(!e.username)throw new Error(x);try{this.setRequestConfig({token:this.userToken});let a,o,{org:s,username:t,role:r}=e;if(t){let l=await this.get_user();try{a=await l.get_user_id();}catch{o=await l.get_user_email();}}let n={};a?n.invitee_id=a:o&&(n.email=o),r==="admin"?n.role="admin":n.role="direct_member";let i=await this.post(`/orgs/${s}/invitations`,n);if(i.statusCode===404)throw new Error(y);if(i.statusCode===422){let l=i.data.message;if(l&&l.includes("is not a valid permission"))throw new Error(_)}if(i.data){let l={id:i.data.inviter.id,login:i.data.inviterlogin,name:i.data.inviter.name,html_url:`${q(this.type)}/${s}`,role:r};i.data=l;}return i}catch(a){throw new Error(`[GitHub] \u6DFB\u52A0\u7EC4\u7EC7\u6210\u5458\u5931\u8D25: ${a.message}`)}}};});var Ht={};k(Ht,{WebHook:()=>ae});var ae,qe=w(()=>{b();E();ae=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async check_webhook_signature(e){let a=e.secret??this.WebHook_Secret;if(!a)throw new Error(ct);if(!e.payload)throw new Error(_t);if(!e.signature)throw new Error(gt);if(!e.signature.startsWith("sha256="))throw new Error(mt);let o=false,s="error",t=400,r=me,n;try{let i=St.createHmac("sha256",a),l=typeof e.payload=="string"?e.payload:JSON.stringify(e.payload);i.update(l,"utf8");let u=i.digest("hex"),c=e.signature.replace("sha256=","");St.timingSafeEqual(Buffer.from(u),Buffer.from(c))?(o=!0,s="ok",t=200,r="\u8BF7\u6C42\u6210\u529F",n={success:o,info:yt}):(o=!1,s="error",t=403,r="\u8BF7\u6C42\u5931\u8D25",n={success:o,info:me});}catch(i){throw new Error(`[GitHub] \u9A8C\u8BC1WebHook\u7B7E\u540D\u5931\u8D25: ${i.message}`)}return Promise.resolve({success:o,status:s,statusCode:t,msg:r,data:n})}};});var Gt={};k(Gt,{Pull_Request:()=>re});var re,Ae=w(()=>{b();E();re=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_pull_request_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a=await this.get(`/repos/${e.owner}/${e.repo}/pulls/${e.pr_number}`);if(a.data){let o={id:a.data.id,html_url:a.data.html_url,number:a.data.number,state:a.data.state,locked:a.data.locked,title:a.data.title,body:a.data.body,draft:a.data.draft,created_at:a.data.created_at,merged_at:a.data.merged_at,updated_at:a.data.updated_at,closed_at:a.data.closed_at,user:{id:a.data.user.id,name:a.data.user.name,login:a.data.user.login,html_url:a.data.user.html_url,avatar_url:a.data.user.avatar_url},base:{label:a.data.base.label,ref:a.data.base.ref,sha:a.data.base.sha,user:{id:a.data.base.user.id,name:a.data.base.user.name,login:a.data.base.user.login,html_url:a.data.base.user.html_url,avatar_url:a.data.base.user.avatar_url},repo:{id:a.data.base.repo.id,owner:a.data.base.repo.owner,name:a.data.base.repo.name,full_name:a.data.base.repo.full_name}},head:{label:a.data.head.label,ref:a.data.head.ref,sha:a.data.head.sha,user:{id:a.data.head.user.id,name:a.data.head.user.name,login:a.data.head.user.login,html_url:a.data.head.user.html_url,avatar_url:a.data.head.user.avatar_url},repo:{id:a.data.head.repo.id,owner:a.data.head.repo.owner,name:a.data.head.repo.name,full_name:a.data.head.repo.full_name}},assignee:a.data.assignee?{id:a.data.assignee.id,name:a.data.assignee.name,login:a.data.assignee.login,html_url:a.data.assignee.html_url,avatar_url:a.data.assignee.avatar_url}:null,assignees:a.data.assignees&&a.data.assignees.length>0?a.data.assignees.map(s=>({id:s.id,name:s.name,login:s.login,html_url:s.html_url,avatar_url:s.avatar_url})):null,milestone:a.data.milestone?{id:a.data.milestone.id,url:a.data.milestone.url,number:a.data.milestone.number,state:a.data.milestone.state,title:a.data.milestone.title,description:a.data.milestone.description,open_issues:a.data.milestone.open_issues,closed_issues:a.data.milestone.closed_issues,created_at:a.data.milestone.created_at,updated_at:a.data.milestone.updated_at,due_on:a.data.milestone.due_on,closed_at:a.data.milestone.closed_at}:null,labels:a.data.labels&&a.data.labels.length>0?a.data.labels.map(s=>({id:s.id,name:s.name,color:s.color})):null,commits:a.data.commits,additions:a.data.additions,deletions:a.data.deletions,changed_files:a.data.changed_files};a.data=o;}return a}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u4FE1\u606F\u5931\u8D25\uFF1A ${a.message}`)}}async get_get_pull_request_list(e){if(!(e.owner||e.repo))throw new Error(p);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,...s}=e,t={};s.state&&(t.state=s.state),s.base&&(t.base=s.base),s.sort&&(t.sort=s.sort),s.direction&&!s.sort&&(t.direction=s.direction),s.per_page&&(t.per_page=s.per_page.toString()),s.page&&(t.page=s.page.toString());let r=await this.get(`/repos/${a}/${o}/pulls`,t);if(r.data){let n=r.data.map(i=>({id:i.id,html_url:i.html_url,number:i.number,state:i.state,locked:i.locked,title:i.title,body:i.body,draft:i.draft,created_at:i.created_at,updated_at:i.updated_at,closed_at:i.closed_at,merged_at:i.merged_at,user:{id:i.user.id,name:i.user.name,login:i.user.login,html_url:i.user.html_url,avatar_url:i.user.avatar_url},base:{label:i.base.label,ref:i.base.ref,sha:i.base.sha,user:{id:i.base.user.id,name:i.base.user.name,login:i.base.user.login,html_url:i.base.user.html_url,avatar_url:i.base.user.avatar_url},repo:{id:i.base.repo.id,owner:i.base.repo.owner,name:i.base.repo.name,full_name:i.base.repo.full_name}},head:{label:i.head.label,ref:i.head.ref,sha:i.head.sha,user:{id:i.head.user.id,name:i.head.user.name,login:i.head.user.login,html_url:i.head.user.html_url,avatar_url:i.head.user.avatar_url},repo:{id:i.head.repo.id,owner:i.head.repo.owner,name:i.head.repo.name,full_name:i.head.repo.full_name}},assignee:i.assignee?{id:i.assignee.id,name:i.assignee.name,login:i.assignee.login,html_url:i.assignee.html_url,avatar_url:i.assignee.avatar_url}:null,assignees:i.assignees&&i.assignees.length>0?i.assignees.map(l=>({id:l.id,name:l.name,login:l.login,html_url:l.html_url,email:l.email,avatar_url:l.avatar_url})):null,milestone:i.milestone?{id:i.milestone.id,url:i.milestone.url,number:i.milestone.number,state:i.milestone.state,title:i.milestone.title,description:i.milestone.description,open_issues:i.milestone.open_issues,closed_issues:i.milestone.closed_issues,created_at:i.milestone.created_at,updated_at:i.milestone.updated_at,closed_at:i.milestone.closed_at,due_on:i.milestone.due_on}:null,labels:i.labels&&i.labels.length>0?i.labels.map(l=>({id:l.id,name:l.name,color:l.color})):null,commits:i.commits,additions:i.additions,deletions:i.deletions,changed_files:i.changed_files}));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u5217\u8868\u5931\u8D25\uFF1A ${a.message}`)}}async create_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.head)throw new Error(lt);if(!e.base)throw new Error(ut);if(!("issue"in e)&&!("title"in e))throw new Error(at);try{this.setRequestConfig({token:this.userToken});let a={};if("issue"in e){if(!e.issue)throw new Error(tt);a.issue=e.issue;}else if("title"in e){if(!e.title)throw new Error(We);a.title=e.title,e.body&&(a.body=e.body);}e.head&&(a.head=e.head),e.head_repo&&(a.head_repo=e.head_repo),e.base&&(a.base=e.base),e.draft&&(a.draft=e.draft);let{owner:o,repo:s}=e,t=await this.post(`/repos/${o}/${s}/pulls`,a);if(t.statusCode===403)throw new Error(_);if(t.data){let r={id:t.data.id,html_url:t.data.html_url,number:t.data.number,state:t.data.state,locked:t.data.locked,title:t.data.title,body:t.data.body,draft:t.data.draft,created_at:t.data.created_at,merged_at:t.data.merged_at,updated_at:t.data.updated_at,closed_at:t.data.closed_at,user:{id:t.data.user.id,name:t.data.user.name,login:t.data.user.login,html_url:t.data.user.html_url,avatar_url:t.data.user.avatar_url},base:{label:t.data.base.label,ref:t.data.base.ref,sha:t.data.base.sha,user:{id:t.data.base.user.id,name:t.data.base.user.name,login:t.data.base.user.login,html_url:t.data.base.user.html_url,avatar_url:t.data.base.user.avatar_url},repo:{id:t.data.base.repo.id,owner:t.data.base.repo.owner,name:t.data.base.repo.name,full_name:t.data.base.repo.full_name}},head:{label:t.data.head.label,ref:t.data.head.ref,sha:t.data.head.sha,user:{id:t.data.head.user.id,name:t.data.head.user.name,login:t.data.head.user.login,html_url:t.data.head.user.html_url,avatar_url:t.data.head.user.avatar_url},repo:{id:t.data.head.repo.id,owner:t.data.head.repo.owner,name:t.data.head.repo.name,full_name:t.data.head.repo.full_name}},assignee:t.data.assignee?{id:t.data.assignee.id,name:t.data.assignee.name,login:t.data.assignee.login,html_url:t.data.assignee.html_url,avatar_url:t.data.assignee.avatar_url}:null,assignees:t.data.assignees&&t.data.assignees.length>0?t.data.assignees.map(n=>({id:n.id,name:n.name,login:n.login,html_url:n.html_url,avatar_url:n.avatar_url})):null,milestone:t.data.milestone?{id:t.data.milestone.id,url:t.data.milestone.url,number:t.data.milestone.number,state:t.data.milestone.state,title:t.data.milestone.title,description:t.data.milestone.description,open_issues:t.data.milestone.open_issues,closed_issues:t.data.milestone.closed_issues,created_at:t.data.milestone.created_at,updated_at:t.data.milestone.updated_at,due_on:t.data.milestone.due_on,closed_at:t.data.milestone.closed_at}:null,labels:t.data.labels&&t.data.labels.length>0?t.data.labels.map(n=>({id:n.id,name:n.name,color:n.color})):null,commits:t.data.commits,additions:t.data.additions,deletions:t.data.deletions,changed_files:t.data.changed_files};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async update_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};e.title&&(a.title=e.title),e.body&&(a.body=e.body),e.state&&(a.state=e.state);let{owner:o,repo:s,pr_number:t}=e,r=await this.patch(`/repos/${o}/${s}/pulls/${t}`,null,a);if(r.statusCode===403)throw new Error(_);if(r.data){let n={id:r.data.id,html_url:r.data.html_url,number:r.data.number,state:r.data.state,locked:r.data.locked,title:r.data.title,body:r.data.body,draft:r.data.draft,created_at:r.data.created_at,merged_at:r.data.merged_at,updated_at:r.data.updated_at,closed_at:r.data.closed_at,user:{id:r.data.user.id,name:r.data.user.name,login:r.data.user.login,html_url:r.data.user.html_url,avatar_url:r.data.user.avatar_url},base:{label:r.data.base.label,ref:r.data.base.ref,sha:r.data.base.sha,user:{id:r.data.base.user.id,name:r.data.base.user.name,login:r.data.base.user.login,html_url:r.data.base.user.html_url,avatar_url:r.data.base.user.avatar_url},repo:{id:r.data.base.repo.id,owner:r.data.base.repo.owner,name:r.data.base.repo.name,full_name:r.data.base.repo.full_name}},head:{label:r.data.head.label,ref:r.data.head.ref,sha:r.data.head.sha,user:{id:r.data.head.user.id,name:r.data.head.user.name,login:r.data.head.user.login,html_url:r.data.head.user.html_url,avatar_url:r.data.head.user.avatar_url},repo:{id:r.data.head.repo.id,owner:r.data.head.repo.owner,name:r.data.head.repo.name,full_name:r.data.head.repo.full_name}},assignee:r.data.assignee?{id:r.data.assignee.id,name:r.data.assignee.name,login:r.data.assignee.login,html_url:r.data.assignee.html_url,avatar_url:r.data.assignee.avatar_url}:null,assignees:r.data.assignees&&r.data.assignees.length>0?r.data.assignees.map(i=>({id:i.id,name:i.name,login:i.login,html_url:i.html_url,avatar_url:i.avatar_url})):null,milestone:r.data.milestone?{id:r.data.milestone.id,url:r.data.milestone.url,number:r.data.milestone.number,state:r.data.milestone.state,title:r.data.milestone.title,description:r.data.milestone.description,open_issues:r.data.milestone.open_issues,closed_issues:r.data.milestone.closed_issues,created_at:r.data.milestone.created_at,updated_at:r.data.milestone.updated_at,due_on:r.data.milestone.due_on,closed_at:r.data.milestone.closed_at}:null,labels:r.data.labels&&r.data.labels.length>0?r.data.labels.map(i=>({id:i.id,name:i.name,color:i.color})):null,commits:r.data.commits,additions:r.data.additions,deletions:r.data.deletions,changed_files:r.data.changed_files};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async merge_pull_request(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};if(e.commit_title&&(a.commit_title=e.commit_title),e.commit_message&&(a.commit_message=e.commit_message),e.sha&&(a.sha=e.sha),e.merge_method){let n=["merge","squash","rebase"];a.merge_method=n.includes(e.merge_method)?e.merge_method:n[0];}let{owner:o,repo:s,pr_number:t}=e,r=await this.put(`/repos/${o}/${s}/pulls/${t}/merge`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z);case 405:throw new Error(dt);case 409:throw new Error(pt)}if(r.statusCode===200&&r.data){let n={sha:r.data.sha,merged:r.data.merged,message:r.data.message};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u5408\u5E76\u62C9\u53D6\u8BF7\u6C42\u5931\u8D25: ${a.message}`)}}async get_pull_request_files_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/files`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let n=r.data.map(i=>({sha:i.sha,filename:i.filename,status:i.status,additions:i.additions,deletions:i.deletions,changes:i.changes,blob_url:i.blob_url,raw_url:i.raw_url,patch:i.patch}));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u6587\u4EF6\u5217\u8868\u5931\u8D25: ${a.message}`)}}async get_pull_request_comment_info(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(B);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s}=e,t=await this.get(`/repos/${a}/${o}/pulls/comments/${s}`);switch(t.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(t.data){let r={id:t.data.id,body:t.data.body,user:{id:t.data.user.id,login:t.data.user.login,name:t.data.user.name,avatar_url:t.data.user.avatar_url,html_url:t.data.user.html_url},created_at:t.data.created_at,updated_at:t.data.updated_at};t.data=r;}return t}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u8BC4\u8BBA\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async get_pull_request_comments_list(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);try{this.setRequestConfig({token:this.userToken});let a={};e.direction&&(a.direction=e.direction),e.per_page&&(a.per_page=e.per_page),e.page&&(a.page=e.page);let{owner:o,repo:s,pr_number:t}=e,r=await this.get(`/repos/${o}/${s}/pulls/${t}/comments`,a);switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}if(r.data){let n=r.data.map(i=>({id:i.id,body:i.body,user:{id:i.user.id,login:i.user.login,name:i.user.name,html_url:i.user.html_url,avatar_url:i.user.avatar_url},created_at:i.created_at,updated_at:i.updated_at}));r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5217\u8868\u5931\u8D25: ${a.message}`)}}async create_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.pr_number)throw new Error($);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,pr_number:s,body:t}=e,r=await this.post(`/repos/${a}/${o}/pulls/${s}/comments`,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(z)}if(r.data){let n={id:r.data.id,body:r.data.body};r.data=n;}return r}catch(a){throw new Error(`[GitHub] \u521B\u5EFA\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async update_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(B);if(!e.body)throw new Error(pe);try{this.setRequestConfig({token:this.userToken});let{owner:a,repo:o,comment_id:s,body:t}=e,r=await this.patch(`/repos/${a}/${o}/issues/comments/${s}`,null,{body:t});switch(r.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let n=!1;return r.statusCode===200&&(n=!0),r.data={success:n},r}catch(a){throw new Error(`[GitHub] \u66F4\u65B0\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}async edit_pull_request_comment(e){return await this.update_pull_request_comment(e)}async delete_pull_request_comment(e){if(!(e.owner||e.repo))throw new Error(p);if(!e.comment_id)throw new Error(B);try{let a=await this.delete(`/repos/${e.owner}/${e.repo}/pulls/comments/${e.comment_id}`);switch(a.statusCode){case 403:throw new Error(_);case 404:throw new Error(U)}let o=!1;return a.statusCode===204&&(o=!0),a.data={success:o},a}catch(a){throw new Error(`[GitHub] \u5220\u9664\u62C9\u53D6\u8BF7\u6C42\u8BC4\u8BBA\u5931\u8D25: ${a.message}`)}}};});var N,h,E=w(()=>{b();V();Ce();N="github",h=class{base_url;api_url;jwtToken;userToken;Private_Key;Client_ID;Client_Secret;WebHook_Secret;format;currentRequestConfig;proxy;constructor(e){this.Private_Key="Private_Key"in e?e.Private_Key:null,this.Client_ID="Client_ID"in e?e.Client_ID:null,this.Client_Secret="Client_Secret"in e?e.Client_Secret:null,this.WebHook_Secret="WebHook_Secret"in e?e.WebHook_Secret:null,this.validateAppClient(),this.jwtToken=this.generate_jwt(),this.base_url=q(N),this.api_url=Te(N),this.userToken="access_token"in e?e.access_token:null,this.currentRequestConfig={url:this.api_url,token:null,tokenType:"Bearer"},this.format=e.format??false;}get type(){return N}get is_app_client(){return !!(this.Client_ID&&this.Client_Secret&&this.Private_Key)}validateAppClient(){if(!this.is_app_client)return;let{Private_Key:e,Client_ID:a,Client_Secret:o}=this,s=e!==null&&e!=="",t=a!==null&&a!=="",r=o!==null&&o!=="",n=[];if(t||n.push("Client_ID"),r||n.push("Client_Secret"),s||n.push("Private_Key"),n.length!==0){if(n.length>0&&n.length<3){let i=n[0];if(i==="Client_ID")throw new Error(Ue);if(i==="Client_Secret")throw new Error(Oe);if(i==="Private_Key")throw new Error(Ne)}if(n.length===3)throw new Error(De)}}async get_app(){let{App:e}=await Promise.resolve().then(()=>(Le(),Dt));return this.app=new e(this),this.app}async get_auth(){let{Auth:e}=await Promise.resolve().then(()=>(Ee(),It));return this.auth=new e(this),this.auth}async get_commit(){let{Commit:e}=await Promise.resolve().then(()=>(ke(),xt));return this.commit=new e(this),this.commit}async get_issue(){let{Issue:e}=await Promise.resolve().then(()=>(ve(),$t));return this.issue=new e(this),this.issue}async get_repo(){let{Repo:e}=await Promise.resolve().then(()=>(Me(),qt));return this.repo=new e(this),this.repo}async get_user(){let{User:e}=await Promise.resolve().then(()=>(xe(),At));return this.user=new e(this),this.user}async get_org(){let{Org:e}=await Promise.resolve().then(()=>($e(),Lt));return this.org=new e(this),this.org}async get_webhook(){let{WebHook:e}=await Promise.resolve().then(()=>(qe(),Ht));return this.webhook=new e(this),this.webhook}async get_pull_request(){let{Pull_Request:e}=await Promise.resolve().then(()=>(Ae(),Gt));return this.pull_request=new e(this),this.pull_request}setProxy(e){if(!e?.address){this.proxy=null;return}try{let a=new URL$1(e.address);switch(a.protocol){case "http:":case "https:":case "socks:":case "socks5:":e.address=`${a.protocol}//${a.host}`;break;default:throw new Error(ne)}switch(e?.type){case "common":case "reverse":this.base_url=q(N,e.address,e.type),this.api_url=Te(N,e.address,e.type);break}this.proxy=e;}catch{throw this.proxy=null,new Error(ne)}}setToken(e){if(!e.startsWith("ghu_")&&!e.startsWith("ghp_"))throw this.userToken=null,new Error(v);this.userToken=e;}generate_jwt(e){let a=e??this.Private_Key;if(!this.is_app_client&&!a)throw new Error(f);let o={exp:Math.floor(Date.now()/1e3)+10*60,iat:Math.floor(Date.now()/1e3),iss:this.Client_ID};return ia.sign(o,a,{algorithm:"RS256"})}setRequestConfig(e){e.url&&(this.currentRequestConfig.url=e.url),e.token&&(this.currentRequestConfig.token=e.token),e.tokenType&&(this.currentRequestConfig.tokenType=e.tokenType);}createRequest(){let{url:e,token:a,tokenType:o}=this.currentRequestConfig,s=this.proxy?.type!=="common"?this.proxy:null,t={"X-GitHub-Api-Version":"2022-11-28",Accept:"application/vnd.github+json"};return new K(e??this.api_url,o,a,s,t)}async get(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().get(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHub] GET \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async post(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().post(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] POST \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async patch(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().patch(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] PATCH \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}async put(e,a,o){try{if(!e)throw new Error(A);let t=await this.createRequest().put(e,a,o);if((t.statusCode===403||t.statusCode===429)&&t.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:t.success,status:t.success?"ok":"error",statusCode:t.statusCode,msg:t.msg,data:t.data}}catch(s){throw new Error(`[GitHUb] PUT \u8BF7\u6C42${e}\u5931\u8D25: ${s.message}`)}}async delete(e,a=null,o,s){try{if(!e)throw new Error(A);let r=await this.createRequest().delete(e,a,o,s);if((r.statusCode===403||r.statusCode===429)&&r.headers["x-ratelimit-remaining"]==="0")throw new Error(L);return {success:r.success,status:r.success?"ok":"error",statusCode:r.statusCode,msg:r.msg,data:r.data}}catch(t){throw new Error(`[GitHub] DELETE \u8BF7\u6C42${e}\u5931\u8D25: ${t.message}`)}}};});var Dt={};k(Dt,{App:()=>se});var se,Le=w(()=>{b();E();se=class extends h{constructor(e){super(e),this.userToken=e.userToken,this.api_url=e.api_url,this.base_url=e.base_url;}async get_app_info(e){if(!this.is_app_client)throw new Error(f);let a=e.access_token??this.userToken;if(!e.app_slug)throw new Error(Fe);if(!a)throw new Error(v);try{this.setRequestConfig({token:a});let o=await this.get(`/apps/${e.app_slug}`);if(o.statusCode===200){let s={id:o.data.id,name:o.data.name,client_id:o.data.client_id,slug:o.data.slug,owner:{id:o.data.owner.id,login:o.data.owner.login,name:o.data.owner.name,email:o.data.owner.email,html_url:o.data.owner.html_url,avatar_url:o.data.owner.avatar_url,type:capitalize(o.data.owner.type.toLowerCase())},description:o.data.description,external_url:o.data.external_url,html_url:o.data.html_url,permissions:o.data.permissions,events:o.data.events,created_at:o.data.created_at,updated_at:o.data.updated_at};o.data=s;}return o}catch(o){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${o.message}`)}}async get_app_info_by_auth(){if(!this.is_app_client)throw new Error(f);try{this.setRequestConfig({url:this.api_url,token:this.jwtToken});let e=await this.get("/app");if(e.statusCode===200){let a={id:e.data.id,name:e.data.name,client_id:e.data.client_id,slug:e.data.slug,owner:{id:e.data.owner.id,login:e.data.owner.login,name:e.data.owner.name,email:e.data.owner.email,html_url:e.data.owner.html_url,avatar_url:e.data.owner.avatar_url,type:capitalize(e.data.owner.type.toLowerCase())},description:e.data.description,external_url:e.data.external_url,html_url:e.data.html_url,permissions:e.data.permissions,events:e.data.events,created_at:e.data.created_at,updated_at:e.data.updated_at};e.data=a;}return e}catch(e){throw new Error(`[GitHub] \u83B7\u53D6\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${e.message}`)}}async get_app_installation_by_repo(e){if(!this.is_app_client)throw new Error(f);if(!e.owner||!e.repo)throw new Error(p);try{this.setRequestConfig({token:this.jwtToken});let{owner:a,repo:o}=e,s=await this.get(`/repos/${a}/${o}/installation`);switch(s.statusCode){case 404:throw new Error(C);case 301:throw new Error(Je)}if(s.data){let t={id:s.data.id,html_url:s.data.html_url,app_id:s.data.app_id,app_slug:s.data.app_slug,target_id:s.data.target_id,target_type:s.data.target_type,account:{id:s.data.account.id,login:s.data.account.login,name:s.data.account.name,email:s.data.account.email,html_url:s.data.account.html_url,avatar_url:s.data.account.avatar_url,type:capitalize(s.data.account.type.toLowerCase())},repository_selection:s.data.repository_selection,access_tokens_url:s.data.access_tokens_url,repositories_url:s.data.repositories_url,permissions:s.data.permissions,events:s.data.events,created_at:this.format?await m(s.data.created_at):s.data.created_at,updated_at:this.format?await m(s.data.updated_at):s.data.updated_at};s.data=t;}return s}catch(a){throw new Error(`[GitHub] \u83B7\u53D6\u5B58\u50A8\u5E93\u5B89\u88C5\u5E94\u7528\u4FE1\u606F\u5931\u8D25: ${a.message}`)}}async create_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u5B89\u88C5\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async create_config_install_link(e){try{if(!this.is_app_client)throw new Error(f);let a=new URL(`apps/${await this.get_app_name()}/installations/new`,this.base_url);return a.search=new URLSearchParams({...e&&{state:e}}).toString(),a.toString()}catch(a){throw new Error(`[GitHub] \u751F\u6210\u5E94\u7528\u914D\u7F6E\u94FE\u63A5\u5931\u8D25: ${a.message}`)}}async get_app_name(){return (await this.get_app_info_by_auth()).data.name}async is_app_installed_in_repo(e){return !!await this.get_app_installation_by_repo({owner:e.owner,repo:e.repo})}};});b();Pe();var He={};k(He,{App:()=>se,Auth:()=>J,Commit:()=>X,GitHubClient:()=>h,Issue:()=>Q,Org:()=>te,Pull_Request:()=>re,Repo:()=>Z,User:()=>ee,WebHook:()=>ae});Le();Ee();E();ke();ve();$e();Ae();Me();xe();qe();var Ge=class{github;constructor(e){if(!e.github)throw new Error("GitHub \u5BA2\u6237\u7AEF\u672A\u914D\u7F6E");this.github=new h(e.github);}};var os=Ge;
6
+ export{Ge as Client,h as GitHubClient,aa as create_state_id,os as default,m as formatDate,fe as get_langage_color,Qt as get_local_repo_default_branch,Xt as get_relative_time,ye as get_remote_repo_default_branch,He as github};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@candriajs/git-neko-kit",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "Github, Gitee, GitCode API封装库",
5
5
  "keywords": [
6
6
  "git",