diff --git a/.eslintrc.js b/.eslintrc.js index 2ce243c9..67279602 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,7 +17,6 @@ module.exports = { "generator-star-spacing": ["error", { before: false, after: true }], "jsx-quotes": ["error", "prefer-double"], "max-depth": ["error", 10], - "newline-before-return": "error", "no-alert": "error", "no-confusing-arrow": ["error", { allowParens: false }], "no-constant-condition": "error", diff --git a/.gitignore b/.gitignore index c5c3285d..b9b93166 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ node_modules/ coverage/ .eslintcache .DS_Store +.idea +badges/ diff --git a/action.yml b/action.yml index 68260a3d..72b30a11 100644 --- a/action.yml +++ b/action.yml @@ -20,6 +20,35 @@ inputs: app-name: description: App name to display on comment required: false + single-comment: + description: Add a single comment instead of multiple comments + required: false + max_lines: + description: Maximum numbers of line print + required: false + default: "15" + min_coverage: + description: Minimum coverage percentage allowed + required: false + default: "100" + exclude: + description: list of files you would like to exclude from min_coverage check + required: false + exclude_root: + description: exclude the root project coverage from min_coverage check + required: false + badge_path: + description: Output badge path. + default: build + required: false + badge_style: + description: 'Badges style: flat, classic.' + default: classic + required: false + badge_label: + description: The left label of the badge, usually static. + default: coverage + required: false runs: using: node16 main: dist/main.js diff --git a/dist/main.js b/dist/main.js index a6e848ed..4aceebfe 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1,7 +1,7 @@ -"use strict";var e=require("node:fs"),p=require("node:path"),a=require("node:os"),d=require("node:http"),t=require("node:https");require("node:net");var r=require("node:tls"),i=require("node:events");require("node:assert");var s=require("node:util"),o=require("node:stream"),m=require("node:url"),l=require("node:punycode"),n=require("node:zlib"),u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function c(e){var p=e.default;if("function"==typeof p){var a=function(){return p.apply(this,arguments)};a.prototype=p.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(e).forEach((function(p){var d=Object.getOwnPropertyDescriptor(e,p);Object.defineProperty(a,p,d.get?d:{enumerable:!0,get:function(){return e[p]}})})),a}var v={},h={},w={};Object.defineProperty(w,"__esModule",{value:!0}),w.toCommandProperties=w.toCommandValue=void 0,w.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e)},w.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{}};var g=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),f=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),T=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)"default"!==a&&Object.hasOwnProperty.call(e,a)&&g(p,e,a);return f(p,e),p};Object.defineProperty(h,"__esModule",{value:!0}),h.issue=h.issueCommand=void 0;const _=T(a),b=w;function E(e,p,a){const d=new y(e,p,a);process.stdout.write(d.toString()+_.EOL)}h.issueCommand=E,h.issue=function(e,p=""){E(e,{},p)};class y{constructor(e,p,a){e||(e="missing.command"),this.command=e,this.properties=p,this.message=a}toString(){let e="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let a=!0;for(const d in this.properties)if(this.properties.hasOwnProperty(d)){const t=this.properties[d];t&&(a?a=!1:e+=",",e+=`${d}=${p=t,b.toCommandValue(p).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`)}}var p;return e+=`::${function(e){return b.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}(this.message)}`,e}}var S,D={},N=new Uint8Array(16);function A(){if(!S&&!(S="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return S(N)}var O=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function k(e){return"string"==typeof e&&O.test(e)}for(var G,P,V=[],C=0;C<256;++C)V.push((C+256).toString(16).substr(1));function R(e){var p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=(V[e[p+0]]+V[e[p+1]]+V[e[p+2]]+V[e[p+3]]+"-"+V[e[p+4]]+V[e[p+5]]+"-"+V[e[p+6]]+V[e[p+7]]+"-"+V[e[p+8]]+V[e[p+9]]+"-"+V[e[p+10]]+V[e[p+11]]+V[e[p+12]]+V[e[p+13]]+V[e[p+14]]+V[e[p+15]]).toLowerCase();if(!k(a))throw TypeError("Stringified UUID is invalid");return a}var U=0,F=0;function j(e){if(!k(e))throw TypeError("Invalid UUID");var p,a=new Uint8Array(16);return a[0]=(p=parseInt(e.slice(0,8),16))>>>24,a[1]=p>>>16&255,a[2]=p>>>8&255,a[3]=255&p,a[4]=(p=parseInt(e.slice(9,13),16))>>>8,a[5]=255&p,a[6]=(p=parseInt(e.slice(14,18),16))>>>8,a[7]=255&p,a[8]=(p=parseInt(e.slice(19,23),16))>>>8,a[9]=255&p,a[10]=(p=parseInt(e.slice(24,36),16))/1099511627776&255,a[11]=p/4294967296&255,a[12]=p>>>24&255,a[13]=p>>>16&255,a[14]=p>>>8&255,a[15]=255&p,a}function x(e,p,a){function d(e,d,t,r){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var p=[],a=0;a>>9<<4)+1}function q(e,p){var a=(65535&e)+(65535&p);return(e>>16)+(p>>16)+(a>>16)<<16|65535&a}function L(e,p,a,d,t,r){return q((i=q(q(p,e),q(d,r)))<<(s=t)|i>>>32-s,a);var i,s}function I(e,p,a,d,t,r,i){return L(p&a|~p&d,e,p,t,r,i)}function H(e,p,a,d,t,r,i){return L(p&d|a&~d,e,p,t,r,i)}function $(e,p,a,d,t,r,i){return L(p^a^d,e,p,t,r,i)}function M(e,p,a,d,t,r,i){return L(a^(p|~d),e,p,t,r,i)}var z=x("v3",48,(function(e){if("string"==typeof e){var p=unescape(encodeURIComponent(e));e=new Uint8Array(p.length);for(var a=0;a>5]>>>t%32&255,i=parseInt(d.charAt(r>>>4&15)+d.charAt(15&r),16);p.push(i)}return p}(function(e,p){e[p>>5]|=128<>5]|=(255&e[d/8])<>>32-p}var Y=x("v5",80,(function(e){var p=[1518500249,1859775393,2400959708,3395469782],a=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var d=unescape(encodeURIComponent(e));e=[];for(var t=0;t>>0;T=f,f=g,g=K(w,30)>>>0,w=h,h=E}a[0]=a[0]+h>>>0,a[1]=a[1]+w>>>0,a[2]=a[2]+g>>>0,a[3]=a[3]+f>>>0,a[4]=a[4]+T>>>0}return[a[0]>>24&255,a[0]>>16&255,a[0]>>8&255,255&a[0],a[1]>>24&255,a[1]>>16&255,a[1]>>8&255,255&a[1],a[2]>>24&255,a[2]>>16&255,a[2]>>8&255,255&a[2],a[3]>>24&255,a[3]>>16&255,a[3]>>8&255,255&a[3],a[4]>>24&255,a[4]>>16&255,a[4]>>8&255,255&a[4]]})),Z=Y;var X=Object.freeze({__proto__:null,NIL:"00000000-0000-0000-0000-000000000000",parse:j,stringify:R,v1:function(e,p,a){var d=p&&a||0,t=p||new Array(16),r=(e=e||{}).node||G,i=void 0!==e.clockseq?e.clockseq:P;if(null==r||null==i){var s=e.random||(e.rng||A)();null==r&&(r=G=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==i&&(i=P=16383&(s[6]<<8|s[7]))}var o=void 0!==e.msecs?e.msecs:Date.now(),m=void 0!==e.nsecs?e.nsecs:F+1,l=o-U+(m-F)/1e4;if(l<0&&void 0===e.clockseq&&(i=i+1&16383),(l<0||o>U)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");U=o,F=m,P=i;var n=(1e4*(268435455&(o+=122192928e5))+m)%4294967296;t[d++]=n>>>24&255,t[d++]=n>>>16&255,t[d++]=n>>>8&255,t[d++]=255&n;var u=o/4294967296*1e4&268435455;t[d++]=u>>>8&255,t[d++]=255&u,t[d++]=u>>>24&15|16,t[d++]=u>>>16&255,t[d++]=i>>>8|128,t[d++]=255&i;for(var c=0;c<6;++c)t[d+c]=r[c];return p||R(t)},v3:W,v4:function(e,p,a){var d=(e=e||{}).random||(e.rng||A)();if(d[6]=15&d[6]|64,d[8]=63&d[8]|128,p){a=a||0;for(var t=0;t<16;++t)p[a+t]=d[t];return p}return R(d)},v5:Z,validate:k,version:function(e){if(!k(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}}),Q=c(X),ee=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),pe=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),ae=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)"default"!==a&&Object.hasOwnProperty.call(e,a)&&ee(p,e,a);return pe(p,e),p};Object.defineProperty(D,"__esModule",{value:!0}),D.prepareKeyValueMessage=D.issueFileCommand=void 0;const de=ae(e),te=ae(a),re=Q,ie=w;D.issueFileCommand=function(e,p){const a=process.env[`GITHUB_${e}`];if(!a)throw new Error(`Unable to find environment variable for file command ${e}`);if(!de.existsSync(a))throw new Error(`Missing file at path: ${a}`);de.appendFileSync(a,`${ie.toCommandValue(p)}${te.EOL}`,{encoding:"utf8"})},D.prepareKeyValueMessage=function(e,p){const a=`ghadelimiter_${re.v4()}`,d=ie.toCommandValue(p);if(e.includes(a))throw new Error(`Unexpected input: name should not contain the delimiter "${a}"`);if(d.includes(a))throw new Error(`Unexpected input: value should not contain the delimiter "${a}"`);return`${e}<<${a}${te.EOL}${d}${te.EOL}${a}`};var se={},oe={},me={};function le(e){if(!e.hostname)return!1;const p=process.env.no_proxy||process.env.NO_PROXY||"";if(!p)return!1;let a;e.port?a=Number(e.port):"http:"===e.protocol?a=80:"https:"===e.protocol&&(a=443);const d=[e.hostname.toUpperCase()];"number"==typeof a&&d.push(`${d[0]}:${a}`);for(const e of p.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e)))if(d.some((p=>p===e)))return!0;return!1}Object.defineProperty(me,"__esModule",{value:!0}),me.checkBypass=me.getProxyUrl=void 0,me.getProxyUrl=function(e){const p="https:"===e.protocol;if(le(e))return;const a=p?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return a?new URL(a):void 0},me.checkBypass=le;var ne,ue={exports:{}},ce={},ve=r,he=d,we=t,ge=i,fe=s;function Te(e){var p=this;p.options=e||{},p.proxyOptions=p.options.proxy||{},p.maxSockets=p.options.maxSockets||he.Agent.defaultMaxSockets,p.requests=[],p.sockets=[],p.on("free",(function(e,a,d,t){for(var r=be(a,d,t),i=0,s=p.requests.length;i=this.maxSockets?t.requests.push(r):t.createSocket(r,(function(p){function a(){t.emit("free",p,r)}function d(e){t.removeSocket(p),p.removeListener("free",a),p.removeListener("close",d),p.removeListener("agentRemove",d)}p.on("free",a),p.on("close",d),p.on("agentRemove",d),e.onSocket(p)}))},Te.prototype.createSocket=function(e,p){var a=this,d={};a.sockets.push(d);var t=Ee({},a.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(t.localAddress=e.localAddress),t.proxyAuth&&(t.headers=t.headers||{},t.headers["Proxy-Authorization"]="Basic "+new Buffer(t.proxyAuth).toString("base64")),ne("making CONNECT request");var r=a.request(t);function i(t,i,s){var o;return r.removeAllListeners(),i.removeAllListeners(),200!==t.statusCode?(ne("tunneling socket could not be established, statusCode=%d",t.statusCode),i.destroy(),(o=new Error("tunneling socket could not be established, statusCode="+t.statusCode)).code="ECONNRESET",e.request.emit("error",o),void a.removeSocket(d)):s.length>0?(ne("got illegal response body from proxy"),i.destroy(),(o=new Error("got illegal response body from proxy")).code="ECONNRESET",e.request.emit("error",o),void a.removeSocket(d)):(ne("tunneling connection has established"),a.sockets[a.sockets.indexOf(d)]=i,p(i))}r.useChunkedEncodingByDefault=!1,r.once("response",(function(e){e.upgrade=!0})),r.once("upgrade",(function(e,p,a){process.nextTick((function(){i(e,p,a)}))})),r.once("connect",i),r.once("error",(function(p){r.removeAllListeners(),ne("tunneling socket could not be established, cause=%s\n",p.message,p.stack);var t=new Error("tunneling socket could not be established, cause="+p.message);t.code="ECONNRESET",e.request.emit("error",t),a.removeSocket(d)})),r.end()},Te.prototype.removeSocket=function(e){var p=this.sockets.indexOf(e);if(-1!==p){this.sockets.splice(p,1);var a=this.requests.shift();a&&this.createSocket(a,(function(e){a.request.onSocket(e)}))}},ne=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},ce.debug=ne,ue.exports=ce,function(e){var p=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),a=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),r=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var d={};if(null!=e)for(var t in e)"default"!==t&&Object.hasOwnProperty.call(e,t)&&p(d,e,t);return a(d,e),d},i=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.HttpClient=e.isHttps=e.HttpClientResponse=e.HttpClientError=e.getProxyUrl=e.MediaTypes=e.Headers=e.HttpCodes=void 0;const s=r(d),o=r(t),m=r(me),l=r(ue.exports);var n,c,v;!function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"}(n=e.HttpCodes||(e.HttpCodes={})),function(e){e.Accept="accept",e.ContentType="content-type"}(c=e.Headers||(e.Headers={})),function(e){e.ApplicationJson="application/json"}(v=e.MediaTypes||(e.MediaTypes={})),e.getProxyUrl=function(e){const p=m.getProxyUrl(new URL(e));return p?p.href:""};const h=[n.MovedPermanently,n.ResourceMoved,n.SeeOther,n.TemporaryRedirect,n.PermanentRedirect],w=[n.BadGateway,n.ServiceUnavailable,n.GatewayTimeout],g=["OPTIONS","GET","DELETE","HEAD"];class f extends Error{constructor(e,p){super(e),this.name="HttpClientError",this.statusCode=p,Object.setPrototypeOf(this,f.prototype)}}e.HttpClientError=f;class T{constructor(e){this.message=e}readBody(){return i(this,void 0,void 0,(function*(){return new Promise((e=>i(this,void 0,void 0,(function*(){let p=Buffer.alloc(0);this.message.on("data",(e=>{p=Buffer.concat([p,e])})),this.message.on("end",(()=>{e(p.toString())}))}))))}))}}e.HttpClientResponse=T,e.isHttps=function(e){return"https:"===new URL(e).protocol};e.HttpClient=class{constructor(e,p,a){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=p||[],this.requestOptions=a,a&&(null!=a.ignoreSslError&&(this._ignoreSslError=a.ignoreSslError),this._socketTimeout=a.socketTimeout,null!=a.allowRedirects&&(this._allowRedirects=a.allowRedirects),null!=a.allowRedirectDowngrade&&(this._allowRedirectDowngrade=a.allowRedirectDowngrade),null!=a.maxRedirects&&(this._maxRedirects=Math.max(a.maxRedirects,0)),null!=a.keepAlive&&(this._keepAlive=a.keepAlive),null!=a.allowRetries&&(this._allowRetries=a.allowRetries),null!=a.maxRetries&&(this._maxRetries=a.maxRetries))}options(e,p){return i(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,p||{})}))}get(e,p){return i(this,void 0,void 0,(function*(){return this.request("GET",e,null,p||{})}))}del(e,p){return i(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,p||{})}))}post(e,p,a){return i(this,void 0,void 0,(function*(){return this.request("POST",e,p,a||{})}))}patch(e,p,a){return i(this,void 0,void 0,(function*(){return this.request("PATCH",e,p,a||{})}))}put(e,p,a){return i(this,void 0,void 0,(function*(){return this.request("PUT",e,p,a||{})}))}head(e,p){return i(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,p||{})}))}sendStream(e,p,a,d){return i(this,void 0,void 0,(function*(){return this.request(e,p,a,d)}))}getJson(e,p={}){return i(this,void 0,void 0,(function*(){p[c.Accept]=this._getExistingOrDefaultHeader(p,c.Accept,v.ApplicationJson);const a=yield this.get(e,p);return this._processResponse(a,this.requestOptions)}))}postJson(e,p,a={}){return i(this,void 0,void 0,(function*(){const d=JSON.stringify(p,null,2);a[c.Accept]=this._getExistingOrDefaultHeader(a,c.Accept,v.ApplicationJson),a[c.ContentType]=this._getExistingOrDefaultHeader(a,c.ContentType,v.ApplicationJson);const t=yield this.post(e,d,a);return this._processResponse(t,this.requestOptions)}))}putJson(e,p,a={}){return i(this,void 0,void 0,(function*(){const d=JSON.stringify(p,null,2);a[c.Accept]=this._getExistingOrDefaultHeader(a,c.Accept,v.ApplicationJson),a[c.ContentType]=this._getExistingOrDefaultHeader(a,c.ContentType,v.ApplicationJson);const t=yield this.put(e,d,a);return this._processResponse(t,this.requestOptions)}))}patchJson(e,p,a={}){return i(this,void 0,void 0,(function*(){const d=JSON.stringify(p,null,2);a[c.Accept]=this._getExistingOrDefaultHeader(a,c.Accept,v.ApplicationJson),a[c.ContentType]=this._getExistingOrDefaultHeader(a,c.ContentType,v.ApplicationJson);const t=yield this.patch(e,d,a);return this._processResponse(t,this.requestOptions)}))}request(e,p,a,d){return i(this,void 0,void 0,(function*(){if(this._disposed)throw new Error("Client has already been disposed.");const t=new URL(p);let r=this._prepareRequest(e,t,d);const i=this._allowRetries&&g.includes(e)?this._maxRetries+1:1;let s,o=0;do{if(s=yield this.requestRaw(r,a),s&&s.message&&s.message.statusCode===n.Unauthorized){let e;for(const p of this.handlers)if(p.canHandleAuthentication(s)){e=p;break}return e?e.handleAuthentication(this,r,a):s}let p=this._maxRedirects;for(;s.message.statusCode&&h.includes(s.message.statusCode)&&this._allowRedirects&&p>0;){const i=s.message.headers.location;if(!i)break;const o=new URL(i);if("https:"===t.protocol&&t.protocol!==o.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield s.readBody(),o.hostname!==t.hostname)for(const e in d)"authorization"===e.toLowerCase()&&delete d[e];r=this._prepareRequest(e,o,d),s=yield this.requestRaw(r,a),p--}if(!s.message.statusCode||!w.includes(s.message.statusCode))return s;o+=1,o{this.requestRawWithCallback(e,p,(function(e,p){e?d(e):p?a(p):d(new Error("Unknown error"))}))}))}))}requestRawWithCallback(e,p,a){"string"==typeof p&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(p,"utf8"));let d=!1;function t(e,p){d||(d=!0,a(e,p))}const r=e.httpModule.request(e.options,(e=>{t(void 0,new T(e))}));let i;r.on("socket",(e=>{i=e})),r.setTimeout(this._socketTimeout||18e4,(()=>{i&&i.end(),t(new Error(`Request timeout: ${e.options.path}`))})),r.on("error",(function(e){t(e)})),p&&"string"==typeof p&&r.write(p,"utf8"),p&&"string"!=typeof p?(p.on("close",(function(){r.end()})),p.pipe(r)):r.end()}getAgent(e){const p=new URL(e);return this._getAgent(p)}_prepareRequest(e,p,a){const d={};d.parsedUrl=p;const t="https:"===d.parsedUrl.protocol;d.httpModule=t?o:s;const r=t?443:80;if(d.options={},d.options.host=d.parsedUrl.hostname,d.options.port=d.parsedUrl.port?parseInt(d.parsedUrl.port):r,d.options.path=(d.parsedUrl.pathname||"")+(d.parsedUrl.search||""),d.options.method=e,d.options.headers=this._mergeHeaders(a),null!=this.userAgent&&(d.options.headers["user-agent"]=this.userAgent),d.options.agent=this._getAgent(d.parsedUrl),this.handlers)for(const e of this.handlers)e.prepareRequest(d.options);return d}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},_(this.requestOptions.headers),_(e||{})):_(e||{})}_getExistingOrDefaultHeader(e,p,a){let d;return this.requestOptions&&this.requestOptions.headers&&(d=_(this.requestOptions.headers)[p]),e[p]||d||a}_getAgent(e){let p;const a=m.getProxyUrl(e),d=a&&a.hostname;if(this._keepAlive&&d&&(p=this._proxyAgent),this._keepAlive&&!d&&(p=this._agent),p)return p;const t="https:"===e.protocol;let r=100;if(this.requestOptions&&(r=this.requestOptions.maxSockets||s.globalAgent.maxSockets),a&&a.hostname){const e={maxSockets:r,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(a.username||a.password)&&{proxyAuth:`${a.username}:${a.password}`}),{host:a.hostname,port:a.port})};let d;const i="https:"===a.protocol;d=t?i?l.httpsOverHttps:l.httpsOverHttp:i?l.httpOverHttps:l.httpOverHttp,p=d(e),this._proxyAgent=p}if(this._keepAlive&&!p){const e={keepAlive:this._keepAlive,maxSockets:r};p=t?new o.Agent(e):new s.Agent(e),this._agent=p}return p||(p=t?o.globalAgent:s.globalAgent),t&&this._ignoreSslError&&(p.options=Object.assign(p.options||{},{rejectUnauthorized:!1})),p}_performExponentialBackoff(e){return i(this,void 0,void 0,(function*(){e=Math.min(10,e);const p=5*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),p)))}))}_processResponse(e,p){return i(this,void 0,void 0,(function*(){return new Promise(((a,d)=>i(this,void 0,void 0,(function*(){const t=e.message.statusCode||0,r={statusCode:t,result:null,headers:{}};let i,s;t===n.NotFound&&a(r);try{s=yield e.readBody(),s&&s.length>0&&(i=p&&p.deserializeDates?JSON.parse(s,(function(e,p){if("string"==typeof p){const e=new Date(p);if(!isNaN(e.valueOf()))return e}return p})):JSON.parse(s),r.result=i),r.headers=e.message.headers}catch(e){}if(t>299){let e;e=i&&i.message?i.message:s&&s.length>0?s:`Failed request: (${t})`;const p=new f(e,t);p.result=r.result,d(p)}else a(r)}))))}))}};const _=e=>Object.keys(e).reduce(((p,a)=>(p[a.toLowerCase()]=e[a],p)),{})}(oe);var ye,Se={},De=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(Se,"__esModule",{value:!0}),Se.PersonalAccessTokenCredentialHandler=Se.BearerCredentialHandler=Se.BasicCredentialHandler=void 0;Se.BasicCredentialHandler=class{constructor(e,p){this.username=e,this.password=p}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return!1}handleAuthentication(){return De(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}};Se.BearerCredentialHandler=class{constructor(e){this.token=e}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization=`Bearer ${this.token}`}canHandleAuthentication(){return!1}handleAuthentication(){return De(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}};function Ne(){if(ye)return se;ye=1;var e=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(se,"__esModule",{value:!0}),se.OidcClient=void 0;const p=oe,a=Se,d=Ce();class t{static createHttpClient(e=!0,d=10){const r={allowRetries:e,maxRetries:d};return new p.HttpClient("actions/oidc-client",[new a.BearerCredentialHandler(t.getRequestToken())],r)}static getRequestToken(){const e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e}static getIDTokenUrl(){const e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e}static getCall(p){var a;return e(this,void 0,void 0,(function*(){const e=t.createHttpClient(),d=yield e.getJson(p).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.result.message}`)})),r=null===(a=d.result)||void 0===a?void 0:a.value;if(!r)throw new Error("Response json body do not have ID Token field");return r}))}static getIDToken(p){return e(this,void 0,void 0,(function*(){try{let e=t.getIDTokenUrl();if(p){e=`${e}&audience=${encodeURIComponent(p)}`}d.debug(`ID token url is ${e}`);const a=yield t.getCall(e);return d.setSecret(a),a}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}return se.OidcClient=t,se}Se.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return!1}handleAuthentication(){return De(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}};var Ae,Oe={};function ke(){return Ae||(Ae=1,function(p){var d=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(p,"__esModule",{value:!0}),p.summary=p.markdownSummary=p.SUMMARY_DOCS_URL=p.SUMMARY_ENV_VAR=void 0;const t=a,r=e,{access:i,appendFile:s,writeFile:o}=r.promises;p.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",p.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";const m=new class{constructor(){this._buffer=""}filePath(){return d(this,void 0,void 0,(function*(){if(this._filePath)return this._filePath;const e=process.env[p.SUMMARY_ENV_VAR];if(!e)throw new Error(`Unable to find environment variable for $${p.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield i(e,r.constants.R_OK|r.constants.W_OK)}catch(p){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}return this._filePath=e,this._filePath}))}wrap(e,p,a={}){const d=Object.entries(a).map((([e,p])=>` ${e}="${p}"`)).join("");return p?`<${e}${d}>${p}`:`<${e}${d}>`}write(e){return d(this,void 0,void 0,(function*(){const p=!!(null==e?void 0:e.overwrite),a=yield this.filePath(),d=p?o:s;return yield d(a,this._buffer,{encoding:"utf8"}),this.emptyBuffer()}))}clear(){return d(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:!0})}))}stringify(){return this._buffer}isEmptyBuffer(){return 0===this._buffer.length}emptyBuffer(){return this._buffer="",this}addRaw(e,p=!1){return this._buffer+=e,p?this.addEOL():this}addEOL(){return this.addRaw(t.EOL)}addCodeBlock(e,p){const a=Object.assign({},p&&{lang:p}),d=this.wrap("pre",this.wrap("code",e),a);return this.addRaw(d).addEOL()}addList(e,p=!1){const a=p?"ol":"ul",d=e.map((e=>this.wrap("li",e))).join(""),t=this.wrap(a,d);return this.addRaw(t).addEOL()}addTable(e){const p=e.map((e=>{const p=e.map((e=>{if("string"==typeof e)return this.wrap("td",e);const{header:p,data:a,colspan:d,rowspan:t}=e,r=p?"th":"td",i=Object.assign(Object.assign({},d&&{colspan:d}),t&&{rowspan:t});return this.wrap(r,a,i)})).join("");return this.wrap("tr",p)})).join(""),a=this.wrap("table",p);return this.addRaw(a).addEOL()}addDetails(e,p){const a=this.wrap("details",this.wrap("summary",e)+p);return this.addRaw(a).addEOL()}addImage(e,p,a){const{width:d,height:t}=a||{},r=Object.assign(Object.assign({},d&&{width:d}),t&&{height:t}),i=this.wrap("img",null,Object.assign({src:e,alt:p},r));return this.addRaw(i).addEOL()}addHeading(e,p){const a=`h${p}`,d=["h1","h2","h3","h4","h5","h6"].includes(a)?a:"h1",t=this.wrap(d,e);return this.addRaw(t).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,p){const a=Object.assign({},p&&{cite:p}),d=this.wrap("blockquote",e,a);return this.addRaw(d).addEOL()}addLink(e,p){const a=this.wrap("a",e,{href:p});return this.addRaw(a).addEOL()}};p.markdownSummary=m,p.summary=m}(Oe)),Oe}var Ge,Pe,Ve={};function Ce(){return Pe||(Pe=1,function(e){var d=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),t=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),r=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)"default"!==a&&Object.hasOwnProperty.call(e,a)&&d(p,e,a);return t(p,e),p},i=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.getIDToken=e.getState=e.saveState=e.group=e.endGroup=e.startGroup=e.info=e.notice=e.warning=e.error=e.debug=e.isDebug=e.setFailed=e.setCommandEcho=e.setOutput=e.getBooleanInput=e.getMultilineInput=e.getInput=e.addPath=e.setSecret=e.exportVariable=e.ExitCode=void 0;const s=h,o=D,m=w,l=r(a),n=r(p),c=Ne();var v;function g(e,p){const a=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(p&&p.required&&!a)throw new Error(`Input required and not supplied: ${e}`);return p&&!1===p.trimWhitespace?a:a.trim()}function f(e,p={}){s.issueCommand("error",m.toCommandProperties(p),e instanceof Error?e.toString():e)}function T(e){s.issue("group",e)}function _(){s.issue("endgroup")}!function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure"}(v=e.ExitCode||(e.ExitCode={})),e.exportVariable=function(e,p){const a=m.toCommandValue(p);if(process.env[e]=a,process.env.GITHUB_ENV||"")return o.issueFileCommand("ENV",o.prepareKeyValueMessage(e,p));s.issueCommand("set-env",{name:e},a)},e.setSecret=function(e){s.issueCommand("add-mask",{},e)},e.addPath=function(e){process.env.GITHUB_PATH||""?o.issueFileCommand("PATH",e):s.issueCommand("add-path",{},e),process.env.PATH=`${e}${n.delimiter}${process.env.PATH}`},e.getInput=g,e.getMultilineInput=function(e,p){const a=g(e,p).split("\n").filter((e=>""!==e));return p&&!1===p.trimWhitespace?a:a.map((e=>e.trim()))},e.getBooleanInput=function(e,p){const a=g(e,p);if(["true","True","TRUE"].includes(a))return!0;if(["false","False","FALSE"].includes(a))return!1;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\nSupport boolean input list: \`true | True | TRUE | false | False | FALSE\``)},e.setOutput=function(e,p){if(process.env.GITHUB_OUTPUT||"")return o.issueFileCommand("OUTPUT",o.prepareKeyValueMessage(e,p));process.stdout.write(l.EOL),s.issueCommand("set-output",{name:e},m.toCommandValue(p))},e.setCommandEcho=function(e){s.issue("echo",e?"on":"off")},e.setFailed=function(e){process.exitCode=v.Failure,f(e)},e.isDebug=function(){return"1"===process.env.RUNNER_DEBUG},e.debug=function(e){s.issueCommand("debug",{},e)},e.error=f,e.warning=function(e,p={}){s.issueCommand("warning",m.toCommandProperties(p),e instanceof Error?e.toString():e)},e.notice=function(e,p={}){s.issueCommand("notice",m.toCommandProperties(p),e instanceof Error?e.toString():e)},e.info=function(e){process.stdout.write(e+l.EOL)},e.startGroup=T,e.endGroup=_,e.group=function(e,p){return i(this,void 0,void 0,(function*(){let a;T(e);try{a=yield p()}finally{_()}return a}))},e.saveState=function(e,p){if(process.env.GITHUB_STATE||"")return o.issueFileCommand("STATE",o.prepareKeyValueMessage(e,p));s.issueCommand("save-state",{name:e},m.toCommandValue(p))},e.getState=function(e){return process.env[`STATE_${e}`]||""},e.getIDToken=function(e){return i(this,void 0,void 0,(function*(){return yield c.OidcClient.getIDToken(e)}))};var b=ke();Object.defineProperty(e,"summary",{enumerable:!0,get:function(){return b.summary}});var E=ke();Object.defineProperty(e,"markdownSummary",{enumerable:!0,get:function(){return E.markdownSummary}});var y=function(){if(Ge)return Ve;Ge=1;var e=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),a=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),d=u&&u.__importStar||function(p){if(p&&p.__esModule)return p;var d={};if(null!=p)for(var t in p)"default"!==t&&Object.hasOwnProperty.call(p,t)&&e(d,p,t);return a(d,p),d};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.toPlatformPath=Ve.toWin32Path=Ve.toPosixPath=void 0;const t=d(p);return Ve.toPosixPath=function(e){return e.replace(/[\\]/g,"/")},Ve.toWin32Path=function(e){return e.replace(/[/]/g,"\\")},Ve.toPlatformPath=function(e){return e.replace(/[/\\]/g,t.sep)},Ve}();Object.defineProperty(e,"toPosixPath",{enumerable:!0,get:function(){return y.toPosixPath}}),Object.defineProperty(e,"toWin32Path",{enumerable:!0,get:function(){return y.toWin32Path}}),Object.defineProperty(e,"toPlatformPath",{enumerable:!0,get:function(){return y.toPlatformPath}})}(v)),v}var Re=Ce(),Ue={},Fe={};Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.Context=void 0;const je=e,xe=a;Fe.Context=class{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(je.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(je.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${xe.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,p]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:p}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};var Be={},qe={},Le={},Ie={};function He(e){if(!e.hostname)return!1;let p,a=process.env.no_proxy||process.env.NO_PROXY||"";if(!a)return!1;e.port?p=Number(e.port):"http:"===e.protocol?p=80:"https:"===e.protocol&&(p=443);let d=[e.hostname.toUpperCase()];"number"==typeof p&&d.push(`${d[0]}:${p}`);for(let e of a.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e)))if(d.some((p=>p===e)))return!0;return!1}Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.getProxyUrl=function(e){let p,a,d="https:"===e.protocol;return He(e)||(a=d?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY,a&&(p=new URL(a))),p},Ie.checkBypass=He,function(e){Object.defineProperty(e,"__esModule",{value:!0});const p=d,a=t,r=Ie;let i;var s,o,m;!function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"}(s=e.HttpCodes||(e.HttpCodes={})),function(e){e.Accept="accept",e.ContentType="content-type"}(o=e.Headers||(e.Headers={})),function(e){e.ApplicationJson="application/json"}(m=e.MediaTypes||(e.MediaTypes={})),e.getProxyUrl=function(e){let p=r.getProxyUrl(new URL(e));return p?p.href:""};const l=[s.MovedPermanently,s.ResourceMoved,s.SeeOther,s.TemporaryRedirect,s.PermanentRedirect],n=[s.BadGateway,s.ServiceUnavailable,s.GatewayTimeout],u=["OPTIONS","GET","DELETE","HEAD"];class c extends Error{constructor(e,p){super(e),this.name="HttpClientError",this.statusCode=p,Object.setPrototypeOf(this,c.prototype)}}e.HttpClientError=c;class v{constructor(e){this.message=e}readBody(){return new Promise((async(e,p)=>{let a=Buffer.alloc(0);this.message.on("data",(e=>{a=Buffer.concat([a,e])})),this.message.on("end",(()=>{e(a.toString())}))}))}}e.HttpClientResponse=v,e.isHttps=function(e){return"https:"===new URL(e).protocol};class h{constructor(e,p,a){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=p||[],this.requestOptions=a,a&&(null!=a.ignoreSslError&&(this._ignoreSslError=a.ignoreSslError),this._socketTimeout=a.socketTimeout,null!=a.allowRedirects&&(this._allowRedirects=a.allowRedirects),null!=a.allowRedirectDowngrade&&(this._allowRedirectDowngrade=a.allowRedirectDowngrade),null!=a.maxRedirects&&(this._maxRedirects=Math.max(a.maxRedirects,0)),null!=a.keepAlive&&(this._keepAlive=a.keepAlive),null!=a.allowRetries&&(this._allowRetries=a.allowRetries),null!=a.maxRetries&&(this._maxRetries=a.maxRetries))}options(e,p){return this.request("OPTIONS",e,null,p||{})}get(e,p){return this.request("GET",e,null,p||{})}del(e,p){return this.request("DELETE",e,null,p||{})}post(e,p,a){return this.request("POST",e,p,a||{})}patch(e,p,a){return this.request("PATCH",e,p,a||{})}put(e,p,a){return this.request("PUT",e,p,a||{})}head(e,p){return this.request("HEAD",e,null,p||{})}sendStream(e,p,a,d){return this.request(e,p,a,d)}async getJson(e,p={}){p[o.Accept]=this._getExistingOrDefaultHeader(p,o.Accept,m.ApplicationJson);let a=await this.get(e,p);return this._processResponse(a,this.requestOptions)}async postJson(e,p,a={}){let d=JSON.stringify(p,null,2);a[o.Accept]=this._getExistingOrDefaultHeader(a,o.Accept,m.ApplicationJson),a[o.ContentType]=this._getExistingOrDefaultHeader(a,o.ContentType,m.ApplicationJson);let t=await this.post(e,d,a);return this._processResponse(t,this.requestOptions)}async putJson(e,p,a={}){let d=JSON.stringify(p,null,2);a[o.Accept]=this._getExistingOrDefaultHeader(a,o.Accept,m.ApplicationJson),a[o.ContentType]=this._getExistingOrDefaultHeader(a,o.ContentType,m.ApplicationJson);let t=await this.put(e,d,a);return this._processResponse(t,this.requestOptions)}async patchJson(e,p,a={}){let d=JSON.stringify(p,null,2);a[o.Accept]=this._getExistingOrDefaultHeader(a,o.Accept,m.ApplicationJson),a[o.ContentType]=this._getExistingOrDefaultHeader(a,o.ContentType,m.ApplicationJson);let t=await this.patch(e,d,a);return this._processResponse(t,this.requestOptions)}async request(e,p,a,d){if(this._disposed)throw new Error("Client has already been disposed.");let t,r=new URL(p),i=this._prepareRequest(e,r,d),o=this._allowRetries&&-1!=u.indexOf(e)?this._maxRetries+1:1,m=0;for(;m0;){const s=t.message.headers.location;if(!s)break;let o=new URL(s);if("https:"==r.protocol&&r.protocol!=o.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(await t.readBody(),o.hostname!==r.hostname)for(let e in d)"authorization"===e.toLowerCase()&&delete d[e];i=this._prepareRequest(e,o,d),t=await this.requestRaw(i,a),p--}if(-1==n.indexOf(t.message.statusCode))return t;m+=1,m{this.requestRawWithCallback(e,p,(function(e,p){e&&d(e),a(p)}))}))}requestRawWithCallback(e,p,a){let d;"string"==typeof p&&(e.options.headers["Content-Length"]=Buffer.byteLength(p,"utf8"));let t=!1,r=(e,p)=>{t||(t=!0,a(e,p))},i=e.httpModule.request(e.options,(e=>{let p=new v(e);r(null,p)}));i.on("socket",(e=>{d=e})),i.setTimeout(this._socketTimeout||18e4,(()=>{d&&d.end(),r(new Error("Request timeout: "+e.options.path),null)})),i.on("error",(function(e){r(e,null)})),p&&"string"==typeof p&&i.write(p,"utf8"),p&&"string"!=typeof p?(p.on("close",(function(){i.end()})),p.pipe(i)):i.end()}getAgent(e){let p=new URL(e);return this._getAgent(p)}_prepareRequest(e,d,t){const r={};r.parsedUrl=d;const i="https:"===r.parsedUrl.protocol;r.httpModule=i?a:p;const s=i?443:80;return r.options={},r.options.host=r.parsedUrl.hostname,r.options.port=r.parsedUrl.port?parseInt(r.parsedUrl.port):s,r.options.path=(r.parsedUrl.pathname||"")+(r.parsedUrl.search||""),r.options.method=e,r.options.headers=this._mergeHeaders(t),null!=this.userAgent&&(r.options.headers["user-agent"]=this.userAgent),r.options.agent=this._getAgent(r.parsedUrl),this.handlers&&this.handlers.forEach((e=>{e.prepareRequest(r.options)})),r}_mergeHeaders(e){const p=e=>Object.keys(e).reduce(((p,a)=>(p[a.toLowerCase()]=e[a],p)),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},p(this.requestOptions.headers),p(e)):p(e||{})}_getExistingOrDefaultHeader(e,p,a){let d;var t;return this.requestOptions&&this.requestOptions.headers&&(d=(t=this.requestOptions.headers,Object.keys(t).reduce(((e,p)=>(e[p.toLowerCase()]=t[p],e)),{}))[p]),e[p]||d||a}_getAgent(e){let d,t=r.getProxyUrl(e),s=t&&t.hostname;if(this._keepAlive&&s&&(d=this._proxyAgent),this._keepAlive&&!s&&(d=this._agent),d)return d;const o="https:"===e.protocol;let m=100;if(this.requestOptions&&(m=this.requestOptions.maxSockets||p.globalAgent.maxSockets),s){i||(i=ue.exports);const e={maxSockets:m,keepAlive:this._keepAlive,proxy:{...(t.username||t.password)&&{proxyAuth:`${t.username}:${t.password}`},host:t.hostname,port:t.port}};let p;const a="https:"===t.protocol;p=o?a?i.httpsOverHttps:i.httpsOverHttp:a?i.httpOverHttps:i.httpOverHttp,d=p(e),this._proxyAgent=d}if(this._keepAlive&&!d){const e={keepAlive:this._keepAlive,maxSockets:m};d=o?new a.Agent(e):new p.Agent(e),this._agent=d}return d||(d=o?a.globalAgent:p.globalAgent),o&&this._ignoreSslError&&(d.options=Object.assign(d.options||{},{rejectUnauthorized:!1})),d}_performExponentialBackoff(e){e=Math.min(10,e);const p=5*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),p)))}static dateTimeDeserializer(e,p){if("string"==typeof p){let e=new Date(p);if(!isNaN(e.valueOf()))return e}return p}async _processResponse(e,p){return new Promise((async(a,d)=>{const t=e.message.statusCode,r={statusCode:t,result:null,headers:{}};let i,o;t==s.NotFound&&a(r);try{o=await e.readBody(),o&&o.length>0&&(i=p&&p.deserializeDates?JSON.parse(o,h.dateTimeDeserializer):JSON.parse(o),r.result=i),r.headers=e.message.headers}catch(e){}if(t>299){let e;e=i&&i.message?i.message:o&&o.length>0?o:"Failed request: ("+t+")";let p=new c(e,t);p.result=r.result,d(p)}else a(r)}))}}e.HttpClient=h}(Le);var $e=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),Me=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),ze=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&$e(p,e,a);return Me(p,e),p};Object.defineProperty(qe,"__esModule",{value:!0}),qe.getApiBaseUrl=qe.getProxyAgent=qe.getAuthString=void 0;const We=ze(Le);function Je(){return"object"==typeof navigator&&"userAgent"in navigator?navigator.userAgent:"object"==typeof process&&"version"in process?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}qe.getAuthString=function(e,p){if(!e&&!p.auth)throw new Error("Parameter token or opts.auth is required");if(e&&p.auth)throw new Error("Parameters token and opts.auth may not both be specified");return"string"==typeof p.auth?p.auth:`token ${e}`},qe.getProxyAgent=function(e){return(new We.HttpClient).getAgent(e)},qe.getApiBaseUrl=function(){return process.env.GITHUB_API_URL||"https://api.github.com"};var Ke={exports:{}},Ye=function e(p,a,d,t){if("function"!=typeof d)throw new Error("method for before hook must be a function");t||(t={});if(Array.isArray(a))return a.reverse().reduce((function(a,d){return e.bind(null,p,d,a,t)}),d)();return Promise.resolve().then((function(){return p.registry[a]?p.registry[a].reduce((function(e,p){return p.hook.bind(null,e,t)}),d)():d(t)}))};var Ze=function(e,p,a,d){var t=d;e.registry[a]||(e.registry[a]=[]);"before"===p&&(d=function(e,p){return Promise.resolve().then(t.bind(null,p)).then(e.bind(null,p))});"after"===p&&(d=function(e,p){var a;return Promise.resolve().then(e.bind(null,p)).then((function(e){return t(a=e,p)})).then((function(){return a}))});"error"===p&&(d=function(e,p){return Promise.resolve().then(e.bind(null,p)).catch((function(e){return t(e,p)}))});e.registry[a].push({hook:d,orig:t})};var Xe=Ye,Qe=Ze,ep=function(e,p,a){if(!e.registry[p])return;var d=e.registry[p].map((function(e){return e.orig})).indexOf(a);if(-1===d)return;e.registry[p].splice(d,1)},pp=Function.bind,ap=pp.bind(pp);function dp(e,p,a){var d=ap(ep,null).apply(null,a?[p,a]:[p]);e.api={remove:d},e.remove=d,["before","error","after","wrap"].forEach((function(d){var t=a?[p,d,a]:[p,d];e[d]=e.api[d]=ap(Qe,null).apply(null,t)}))}function tp(){var e={registry:{}},p=Xe.bind(null,e);return dp(p,e),p}var rp=!1;function ip(){return rp||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),rp=!0),tp()}ip.Singular=function(){var e={registry:{}},p=Xe.bind(null,e,"h");return dp(p,e,"h"),p}.bind(),ip.Collection=tp.bind(),Ke.exports=ip,Ke.exports.Hook=ip,Ke.exports.Singular=ip.Singular;var sp=Ke.exports.Collection=ip.Collection; +"use strict";var e=require("node:fs"),p=require("node:os"),a=require("node:path"),d=require("node:http"),t=require("node:https");require("node:net");var r=require("node:tls"),i=require("node:events");require("node:assert");var s=require("node:util"),o=require("node:stream"),m=require("node:url"),n=require("node:punycode"),l=require("node:zlib"),u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function c(e){var p=e.default;if("function"==typeof p){var a=function(){return p.apply(this,arguments)};a.prototype=p.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(e).forEach((function(p){var d=Object.getOwnPropertyDescriptor(e,p);Object.defineProperty(a,p,d.get?d:{enumerable:!0,get:function(){return e[p]}})})),a}var v={},h={},w={};Object.defineProperty(w,"__esModule",{value:!0}),w.toCommandProperties=w.toCommandValue=void 0,w.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e)},w.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{}};var g=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),f=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),T=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)"default"!==a&&Object.hasOwnProperty.call(e,a)&&g(p,e,a);return f(p,e),p};Object.defineProperty(h,"__esModule",{value:!0}),h.issue=h.issueCommand=void 0;const _=T(p),b=w;function E(e,p,a){const d=new y(e,p,a);process.stdout.write(d.toString()+_.EOL)}h.issueCommand=E,h.issue=function(e,p=""){E(e,{},p)};class y{constructor(e,p,a){e||(e="missing.command"),this.command=e,this.properties=p,this.message=a}toString(){let e="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let a=!0;for(const d in this.properties)if(this.properties.hasOwnProperty(d)){const t=this.properties[d];t&&(a?a=!1:e+=",",e+=`${d}=${p=t,b.toCommandValue(p).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`)}}var p;return e+=`::${function(e){return b.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}(this.message)}`,e}}var S,D={},N=new Uint8Array(16);function A(){if(!S&&!(S="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return S(N)}var O=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function k(e){return"string"==typeof e&&O.test(e)}for(var G,P,V=[],C=0;C<256;++C)V.push((C+256).toString(16).substr(1));function R(e){var p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=(V[e[p+0]]+V[e[p+1]]+V[e[p+2]]+V[e[p+3]]+"-"+V[e[p+4]]+V[e[p+5]]+"-"+V[e[p+6]]+V[e[p+7]]+"-"+V[e[p+8]]+V[e[p+9]]+"-"+V[e[p+10]]+V[e[p+11]]+V[e[p+12]]+V[e[p+13]]+V[e[p+14]]+V[e[p+15]]).toLowerCase();if(!k(a))throw TypeError("Stringified UUID is invalid");return a}var U=0,F=0;function x(e){if(!k(e))throw TypeError("Invalid UUID");var p,a=new Uint8Array(16);return a[0]=(p=parseInt(e.slice(0,8),16))>>>24,a[1]=p>>>16&255,a[2]=p>>>8&255,a[3]=255&p,a[4]=(p=parseInt(e.slice(9,13),16))>>>8,a[5]=255&p,a[6]=(p=parseInt(e.slice(14,18),16))>>>8,a[7]=255&p,a[8]=(p=parseInt(e.slice(19,23),16))>>>8,a[9]=255&p,a[10]=(p=parseInt(e.slice(24,36),16))/1099511627776&255,a[11]=p/4294967296&255,a[12]=p>>>24&255,a[13]=p>>>16&255,a[14]=p>>>8&255,a[15]=255&p,a}function j(e,p,a){function d(e,d,t,r){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var p=[],a=0;a>>9<<4)+1}function L(e,p){var a=(65535&e)+(65535&p);return(e>>16)+(p>>16)+(a>>16)<<16|65535&a}function q(e,p,a,d,t,r){return L((i=L(L(p,e),L(d,r)))<<(s=t)|i>>>32-s,a);var i,s}function $(e,p,a,d,t,r,i){return q(p&a|~p&d,e,p,t,r,i)}function I(e,p,a,d,t,r,i){return q(p&d|a&~d,e,p,t,r,i)}function H(e,p,a,d,t,r,i){return q(p^a^d,e,p,t,r,i)}function M(e,p,a,d,t,r,i){return q(a^(p|~d),e,p,t,r,i)}var z=j("v3",48,(function(e){if("string"==typeof e){var p=unescape(encodeURIComponent(e));e=new Uint8Array(p.length);for(var a=0;a>5]>>>t%32&255,i=parseInt(d.charAt(r>>>4&15)+d.charAt(15&r),16);p.push(i)}return p}(function(e,p){e[p>>5]|=128<>5]|=(255&e[d/8])<>>32-p}var Y=j("v5",80,(function(e){var p=[1518500249,1859775393,2400959708,3395469782],a=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var d=unescape(encodeURIComponent(e));e=[];for(var t=0;t>>0;T=f,f=g,g=K(w,30)>>>0,w=h,h=E}a[0]=a[0]+h>>>0,a[1]=a[1]+w>>>0,a[2]=a[2]+g>>>0,a[3]=a[3]+f>>>0,a[4]=a[4]+T>>>0}return[a[0]>>24&255,a[0]>>16&255,a[0]>>8&255,255&a[0],a[1]>>24&255,a[1]>>16&255,a[1]>>8&255,255&a[1],a[2]>>24&255,a[2]>>16&255,a[2]>>8&255,255&a[2],a[3]>>24&255,a[3]>>16&255,a[3]>>8&255,255&a[3],a[4]>>24&255,a[4]>>16&255,a[4]>>8&255,255&a[4]]})),Z=Y;var X=Object.freeze({__proto__:null,NIL:"00000000-0000-0000-0000-000000000000",parse:x,stringify:R,v1:function(e,p,a){var d=p&&a||0,t=p||new Array(16),r=(e=e||{}).node||G,i=void 0!==e.clockseq?e.clockseq:P;if(null==r||null==i){var s=e.random||(e.rng||A)();null==r&&(r=G=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==i&&(i=P=16383&(s[6]<<8|s[7]))}var o=void 0!==e.msecs?e.msecs:Date.now(),m=void 0!==e.nsecs?e.nsecs:F+1,n=o-U+(m-F)/1e4;if(n<0&&void 0===e.clockseq&&(i=i+1&16383),(n<0||o>U)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");U=o,F=m,P=i;var l=(1e4*(268435455&(o+=122192928e5))+m)%4294967296;t[d++]=l>>>24&255,t[d++]=l>>>16&255,t[d++]=l>>>8&255,t[d++]=255&l;var u=o/4294967296*1e4&268435455;t[d++]=u>>>8&255,t[d++]=255&u,t[d++]=u>>>24&15|16,t[d++]=u>>>16&255,t[d++]=i>>>8|128,t[d++]=255&i;for(var c=0;c<6;++c)t[d+c]=r[c];return p||R(t)},v3:W,v4:function(e,p,a){var d=(e=e||{}).random||(e.rng||A)();if(d[6]=15&d[6]|64,d[8]=63&d[8]|128,p){a=a||0;for(var t=0;t<16;++t)p[a+t]=d[t];return p}return R(d)},v5:Z,validate:k,version:function(e){if(!k(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}}),Q=c(X),ee=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),pe=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),ae=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)"default"!==a&&Object.hasOwnProperty.call(e,a)&&ee(p,e,a);return pe(p,e),p};Object.defineProperty(D,"__esModule",{value:!0}),D.prepareKeyValueMessage=D.issueFileCommand=void 0;const de=ae(e),te=ae(p),re=Q,ie=w;D.issueFileCommand=function(e,p){const a=process.env[`GITHUB_${e}`];if(!a)throw new Error(`Unable to find environment variable for file command ${e}`);if(!de.existsSync(a))throw new Error(`Missing file at path: ${a}`);de.appendFileSync(a,`${ie.toCommandValue(p)}${te.EOL}`,{encoding:"utf8"})},D.prepareKeyValueMessage=function(e,p){const a=`ghadelimiter_${re.v4()}`,d=ie.toCommandValue(p);if(e.includes(a))throw new Error(`Unexpected input: name should not contain the delimiter "${a}"`);if(d.includes(a))throw new Error(`Unexpected input: value should not contain the delimiter "${a}"`);return`${e}<<${a}${te.EOL}${d}${te.EOL}${a}`};var se={},oe={},me={};function ne(e){if(!e.hostname)return!1;const p=process.env.no_proxy||process.env.NO_PROXY||"";if(!p)return!1;let a;e.port?a=Number(e.port):"http:"===e.protocol?a=80:"https:"===e.protocol&&(a=443);const d=[e.hostname.toUpperCase()];"number"==typeof a&&d.push(`${d[0]}:${a}`);for(const e of p.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e)))if(d.some((p=>p===e)))return!0;return!1}Object.defineProperty(me,"__esModule",{value:!0}),me.checkBypass=me.getProxyUrl=void 0,me.getProxyUrl=function(e){const p="https:"===e.protocol;if(ne(e))return;const a=p?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;return a?new URL(a):void 0},me.checkBypass=ne;var le,ue={exports:{}},ce={},ve=r,he=d,we=t,ge=i,fe=s;function Te(e){var p=this;p.options=e||{},p.proxyOptions=p.options.proxy||{},p.maxSockets=p.options.maxSockets||he.Agent.defaultMaxSockets,p.requests=[],p.sockets=[],p.on("free",(function(e,a,d,t){for(var r=be(a,d,t),i=0,s=p.requests.length;i=this.maxSockets?t.requests.push(r):t.createSocket(r,(function(p){function a(){t.emit("free",p,r)}function d(e){t.removeSocket(p),p.removeListener("free",a),p.removeListener("close",d),p.removeListener("agentRemove",d)}p.on("free",a),p.on("close",d),p.on("agentRemove",d),e.onSocket(p)}))},Te.prototype.createSocket=function(e,p){var a=this,d={};a.sockets.push(d);var t=Ee({},a.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(t.localAddress=e.localAddress),t.proxyAuth&&(t.headers=t.headers||{},t.headers["Proxy-Authorization"]="Basic "+new Buffer(t.proxyAuth).toString("base64")),le("making CONNECT request");var r=a.request(t);function i(t,i,s){var o;return r.removeAllListeners(),i.removeAllListeners(),200!==t.statusCode?(le("tunneling socket could not be established, statusCode=%d",t.statusCode),i.destroy(),(o=new Error("tunneling socket could not be established, statusCode="+t.statusCode)).code="ECONNRESET",e.request.emit("error",o),void a.removeSocket(d)):s.length>0?(le("got illegal response body from proxy"),i.destroy(),(o=new Error("got illegal response body from proxy")).code="ECONNRESET",e.request.emit("error",o),void a.removeSocket(d)):(le("tunneling connection has established"),a.sockets[a.sockets.indexOf(d)]=i,p(i))}r.useChunkedEncodingByDefault=!1,r.once("response",(function(e){e.upgrade=!0})),r.once("upgrade",(function(e,p,a){process.nextTick((function(){i(e,p,a)}))})),r.once("connect",i),r.once("error",(function(p){r.removeAllListeners(),le("tunneling socket could not be established, cause=%s\n",p.message,p.stack);var t=new Error("tunneling socket could not be established, cause="+p.message);t.code="ECONNRESET",e.request.emit("error",t),a.removeSocket(d)})),r.end()},Te.prototype.removeSocket=function(e){var p=this.sockets.indexOf(e);if(-1!==p){this.sockets.splice(p,1);var a=this.requests.shift();a&&this.createSocket(a,(function(e){a.request.onSocket(e)}))}},le=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},ce.debug=le,ue.exports=ce,function(e){var p=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),a=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),r=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var d={};if(null!=e)for(var t in e)"default"!==t&&Object.hasOwnProperty.call(e,t)&&p(d,e,t);return a(d,e),d},i=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.HttpClient=e.isHttps=e.HttpClientResponse=e.HttpClientError=e.getProxyUrl=e.MediaTypes=e.Headers=e.HttpCodes=void 0;const s=r(d),o=r(t),m=r(me),n=r(ue.exports);var l,c,v;!function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"}(l=e.HttpCodes||(e.HttpCodes={})),function(e){e.Accept="accept",e.ContentType="content-type"}(c=e.Headers||(e.Headers={})),function(e){e.ApplicationJson="application/json"}(v=e.MediaTypes||(e.MediaTypes={})),e.getProxyUrl=function(e){const p=m.getProxyUrl(new URL(e));return p?p.href:""};const h=[l.MovedPermanently,l.ResourceMoved,l.SeeOther,l.TemporaryRedirect,l.PermanentRedirect],w=[l.BadGateway,l.ServiceUnavailable,l.GatewayTimeout],g=["OPTIONS","GET","DELETE","HEAD"];class f extends Error{constructor(e,p){super(e),this.name="HttpClientError",this.statusCode=p,Object.setPrototypeOf(this,f.prototype)}}e.HttpClientError=f;class T{constructor(e){this.message=e}readBody(){return i(this,void 0,void 0,(function*(){return new Promise((e=>i(this,void 0,void 0,(function*(){let p=Buffer.alloc(0);this.message.on("data",(e=>{p=Buffer.concat([p,e])})),this.message.on("end",(()=>{e(p.toString())}))}))))}))}}e.HttpClientResponse=T,e.isHttps=function(e){return"https:"===new URL(e).protocol};e.HttpClient=class{constructor(e,p,a){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=p||[],this.requestOptions=a,a&&(null!=a.ignoreSslError&&(this._ignoreSslError=a.ignoreSslError),this._socketTimeout=a.socketTimeout,null!=a.allowRedirects&&(this._allowRedirects=a.allowRedirects),null!=a.allowRedirectDowngrade&&(this._allowRedirectDowngrade=a.allowRedirectDowngrade),null!=a.maxRedirects&&(this._maxRedirects=Math.max(a.maxRedirects,0)),null!=a.keepAlive&&(this._keepAlive=a.keepAlive),null!=a.allowRetries&&(this._allowRetries=a.allowRetries),null!=a.maxRetries&&(this._maxRetries=a.maxRetries))}options(e,p){return i(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,p||{})}))}get(e,p){return i(this,void 0,void 0,(function*(){return this.request("GET",e,null,p||{})}))}del(e,p){return i(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,p||{})}))}post(e,p,a){return i(this,void 0,void 0,(function*(){return this.request("POST",e,p,a||{})}))}patch(e,p,a){return i(this,void 0,void 0,(function*(){return this.request("PATCH",e,p,a||{})}))}put(e,p,a){return i(this,void 0,void 0,(function*(){return this.request("PUT",e,p,a||{})}))}head(e,p){return i(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,p||{})}))}sendStream(e,p,a,d){return i(this,void 0,void 0,(function*(){return this.request(e,p,a,d)}))}getJson(e,p={}){return i(this,void 0,void 0,(function*(){p[c.Accept]=this._getExistingOrDefaultHeader(p,c.Accept,v.ApplicationJson);const a=yield this.get(e,p);return this._processResponse(a,this.requestOptions)}))}postJson(e,p,a={}){return i(this,void 0,void 0,(function*(){const d=JSON.stringify(p,null,2);a[c.Accept]=this._getExistingOrDefaultHeader(a,c.Accept,v.ApplicationJson),a[c.ContentType]=this._getExistingOrDefaultHeader(a,c.ContentType,v.ApplicationJson);const t=yield this.post(e,d,a);return this._processResponse(t,this.requestOptions)}))}putJson(e,p,a={}){return i(this,void 0,void 0,(function*(){const d=JSON.stringify(p,null,2);a[c.Accept]=this._getExistingOrDefaultHeader(a,c.Accept,v.ApplicationJson),a[c.ContentType]=this._getExistingOrDefaultHeader(a,c.ContentType,v.ApplicationJson);const t=yield this.put(e,d,a);return this._processResponse(t,this.requestOptions)}))}patchJson(e,p,a={}){return i(this,void 0,void 0,(function*(){const d=JSON.stringify(p,null,2);a[c.Accept]=this._getExistingOrDefaultHeader(a,c.Accept,v.ApplicationJson),a[c.ContentType]=this._getExistingOrDefaultHeader(a,c.ContentType,v.ApplicationJson);const t=yield this.patch(e,d,a);return this._processResponse(t,this.requestOptions)}))}request(e,p,a,d){return i(this,void 0,void 0,(function*(){if(this._disposed)throw new Error("Client has already been disposed.");const t=new URL(p);let r=this._prepareRequest(e,t,d);const i=this._allowRetries&&g.includes(e)?this._maxRetries+1:1;let s,o=0;do{if(s=yield this.requestRaw(r,a),s&&s.message&&s.message.statusCode===l.Unauthorized){let e;for(const p of this.handlers)if(p.canHandleAuthentication(s)){e=p;break}return e?e.handleAuthentication(this,r,a):s}let p=this._maxRedirects;for(;s.message.statusCode&&h.includes(s.message.statusCode)&&this._allowRedirects&&p>0;){const i=s.message.headers.location;if(!i)break;const o=new URL(i);if("https:"===t.protocol&&t.protocol!==o.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield s.readBody(),o.hostname!==t.hostname)for(const e in d)"authorization"===e.toLowerCase()&&delete d[e];r=this._prepareRequest(e,o,d),s=yield this.requestRaw(r,a),p--}if(!s.message.statusCode||!w.includes(s.message.statusCode))return s;o+=1,o{this.requestRawWithCallback(e,p,(function(e,p){e?d(e):p?a(p):d(new Error("Unknown error"))}))}))}))}requestRawWithCallback(e,p,a){"string"==typeof p&&(e.options.headers||(e.options.headers={}),e.options.headers["Content-Length"]=Buffer.byteLength(p,"utf8"));let d=!1;function t(e,p){d||(d=!0,a(e,p))}const r=e.httpModule.request(e.options,(e=>{t(void 0,new T(e))}));let i;r.on("socket",(e=>{i=e})),r.setTimeout(this._socketTimeout||18e4,(()=>{i&&i.end(),t(new Error(`Request timeout: ${e.options.path}`))})),r.on("error",(function(e){t(e)})),p&&"string"==typeof p&&r.write(p,"utf8"),p&&"string"!=typeof p?(p.on("close",(function(){r.end()})),p.pipe(r)):r.end()}getAgent(e){const p=new URL(e);return this._getAgent(p)}_prepareRequest(e,p,a){const d={};d.parsedUrl=p;const t="https:"===d.parsedUrl.protocol;d.httpModule=t?o:s;const r=t?443:80;if(d.options={},d.options.host=d.parsedUrl.hostname,d.options.port=d.parsedUrl.port?parseInt(d.parsedUrl.port):r,d.options.path=(d.parsedUrl.pathname||"")+(d.parsedUrl.search||""),d.options.method=e,d.options.headers=this._mergeHeaders(a),null!=this.userAgent&&(d.options.headers["user-agent"]=this.userAgent),d.options.agent=this._getAgent(d.parsedUrl),this.handlers)for(const e of this.handlers)e.prepareRequest(d.options);return d}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},_(this.requestOptions.headers),_(e||{})):_(e||{})}_getExistingOrDefaultHeader(e,p,a){let d;return this.requestOptions&&this.requestOptions.headers&&(d=_(this.requestOptions.headers)[p]),e[p]||d||a}_getAgent(e){let p;const a=m.getProxyUrl(e),d=a&&a.hostname;if(this._keepAlive&&d&&(p=this._proxyAgent),this._keepAlive&&!d&&(p=this._agent),p)return p;const t="https:"===e.protocol;let r=100;if(this.requestOptions&&(r=this.requestOptions.maxSockets||s.globalAgent.maxSockets),a&&a.hostname){const e={maxSockets:r,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(a.username||a.password)&&{proxyAuth:`${a.username}:${a.password}`}),{host:a.hostname,port:a.port})};let d;const i="https:"===a.protocol;d=t?i?n.httpsOverHttps:n.httpsOverHttp:i?n.httpOverHttps:n.httpOverHttp,p=d(e),this._proxyAgent=p}if(this._keepAlive&&!p){const e={keepAlive:this._keepAlive,maxSockets:r};p=t?new o.Agent(e):new s.Agent(e),this._agent=p}return p||(p=t?o.globalAgent:s.globalAgent),t&&this._ignoreSslError&&(p.options=Object.assign(p.options||{},{rejectUnauthorized:!1})),p}_performExponentialBackoff(e){return i(this,void 0,void 0,(function*(){e=Math.min(10,e);const p=5*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),p)))}))}_processResponse(e,p){return i(this,void 0,void 0,(function*(){return new Promise(((a,d)=>i(this,void 0,void 0,(function*(){const t=e.message.statusCode||0,r={statusCode:t,result:null,headers:{}};let i,s;t===l.NotFound&&a(r);try{s=yield e.readBody(),s&&s.length>0&&(i=p&&p.deserializeDates?JSON.parse(s,(function(e,p){if("string"==typeof p){const e=new Date(p);if(!isNaN(e.valueOf()))return e}return p})):JSON.parse(s),r.result=i),r.headers=e.message.headers}catch(e){}if(t>299){let e;e=i&&i.message?i.message:s&&s.length>0?s:`Failed request: (${t})`;const p=new f(e,t);p.result=r.result,d(p)}else a(r)}))))}))}};const _=e=>Object.keys(e).reduce(((p,a)=>(p[a.toLowerCase()]=e[a],p)),{})}(oe);var ye,Se={},De=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(Se,"__esModule",{value:!0}),Se.PersonalAccessTokenCredentialHandler=Se.BearerCredentialHandler=Se.BasicCredentialHandler=void 0;Se.BasicCredentialHandler=class{constructor(e,p){this.username=e,this.password=p}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return!1}handleAuthentication(){return De(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}};Se.BearerCredentialHandler=class{constructor(e){this.token=e}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization=`Bearer ${this.token}`}canHandleAuthentication(){return!1}handleAuthentication(){return De(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}};function Ne(){if(ye)return se;ye=1;var e=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(se,"__esModule",{value:!0}),se.OidcClient=void 0;const p=oe,a=Se,d=Ce();class t{static createHttpClient(e=!0,d=10){const r={allowRetries:e,maxRetries:d};return new p.HttpClient("actions/oidc-client",[new a.BearerCredentialHandler(t.getRequestToken())],r)}static getRequestToken(){const e=process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN;if(!e)throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable");return e}static getIDTokenUrl(){const e=process.env.ACTIONS_ID_TOKEN_REQUEST_URL;if(!e)throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable");return e}static getCall(p){var a;return e(this,void 0,void 0,(function*(){const e=t.createHttpClient(),d=yield e.getJson(p).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.result.message}`)})),r=null===(a=d.result)||void 0===a?void 0:a.value;if(!r)throw new Error("Response json body do not have ID Token field");return r}))}static getIDToken(p){return e(this,void 0,void 0,(function*(){try{let e=t.getIDTokenUrl();if(p){e=`${e}&audience=${encodeURIComponent(p)}`}d.debug(`ID token url is ${e}`);const a=yield t.getCall(e);return d.setSecret(a),a}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}return se.OidcClient=t,se}Se.PersonalAccessTokenCredentialHandler=class{constructor(e){this.token=e}prepareRequest(e){if(!e.headers)throw Error("The request has no headers");e.headers.Authorization=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return!1}handleAuthentication(){return De(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}};var Ae,Oe={};function ke(){return Ae||(Ae=1,function(a){var d=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(a,"__esModule",{value:!0}),a.summary=a.markdownSummary=a.SUMMARY_DOCS_URL=a.SUMMARY_ENV_VAR=void 0;const t=p,r=e,{access:i,appendFile:s,writeFile:o}=r.promises;a.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY",a.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";const m=new class{constructor(){this._buffer=""}filePath(){return d(this,void 0,void 0,(function*(){if(this._filePath)return this._filePath;const e=process.env[a.SUMMARY_ENV_VAR];if(!e)throw new Error(`Unable to find environment variable for $${a.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield i(e,r.constants.R_OK|r.constants.W_OK)}catch(p){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}return this._filePath=e,this._filePath}))}wrap(e,p,a={}){const d=Object.entries(a).map((([e,p])=>` ${e}="${p}"`)).join("");return p?`<${e}${d}>${p}`:`<${e}${d}>`}write(e){return d(this,void 0,void 0,(function*(){const p=!!(null==e?void 0:e.overwrite),a=yield this.filePath(),d=p?o:s;return yield d(a,this._buffer,{encoding:"utf8"}),this.emptyBuffer()}))}clear(){return d(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:!0})}))}stringify(){return this._buffer}isEmptyBuffer(){return 0===this._buffer.length}emptyBuffer(){return this._buffer="",this}addRaw(e,p=!1){return this._buffer+=e,p?this.addEOL():this}addEOL(){return this.addRaw(t.EOL)}addCodeBlock(e,p){const a=Object.assign({},p&&{lang:p}),d=this.wrap("pre",this.wrap("code",e),a);return this.addRaw(d).addEOL()}addList(e,p=!1){const a=p?"ol":"ul",d=e.map((e=>this.wrap("li",e))).join(""),t=this.wrap(a,d);return this.addRaw(t).addEOL()}addTable(e){const p=e.map((e=>{const p=e.map((e=>{if("string"==typeof e)return this.wrap("td",e);const{header:p,data:a,colspan:d,rowspan:t}=e,r=p?"th":"td",i=Object.assign(Object.assign({},d&&{colspan:d}),t&&{rowspan:t});return this.wrap(r,a,i)})).join("");return this.wrap("tr",p)})).join(""),a=this.wrap("table",p);return this.addRaw(a).addEOL()}addDetails(e,p){const a=this.wrap("details",this.wrap("summary",e)+p);return this.addRaw(a).addEOL()}addImage(e,p,a){const{width:d,height:t}=a||{},r=Object.assign(Object.assign({},d&&{width:d}),t&&{height:t}),i=this.wrap("img",null,Object.assign({src:e,alt:p},r));return this.addRaw(i).addEOL()}addHeading(e,p){const a=`h${p}`,d=["h1","h2","h3","h4","h5","h6"].includes(a)?a:"h1",t=this.wrap(d,e);return this.addRaw(t).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,p){const a=Object.assign({},p&&{cite:p}),d=this.wrap("blockquote",e,a);return this.addRaw(d).addEOL()}addLink(e,p){const a=this.wrap("a",e,{href:p});return this.addRaw(a).addEOL()}};a.markdownSummary=m,a.summary=m}(Oe)),Oe}var Ge,Pe,Ve={};function Ce(){return Pe||(Pe=1,function(e){var d=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),t=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),r=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)"default"!==a&&Object.hasOwnProperty.call(e,a)&&d(p,e,a);return t(p,e),p},i=u&&u.__awaiter||function(e,p,a,d){return new(a||(a=Promise))((function(t,r){function i(e){try{o(d.next(e))}catch(e){r(e)}}function s(e){try{o(d.throw(e))}catch(e){r(e)}}function o(e){var p;e.done?t(e.value):(p=e.value,p instanceof a?p:new a((function(e){e(p)}))).then(i,s)}o((d=d.apply(e,p||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.getIDToken=e.getState=e.saveState=e.group=e.endGroup=e.startGroup=e.info=e.notice=e.warning=e.error=e.debug=e.isDebug=e.setFailed=e.setCommandEcho=e.setOutput=e.getBooleanInput=e.getMultilineInput=e.getInput=e.addPath=e.setSecret=e.exportVariable=e.ExitCode=void 0;const s=h,o=D,m=w,n=r(p),l=r(a),c=Ne();var v;function g(e,p){const a=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(p&&p.required&&!a)throw new Error(`Input required and not supplied: ${e}`);return p&&!1===p.trimWhitespace?a:a.trim()}function f(e,p={}){s.issueCommand("error",m.toCommandProperties(p),e instanceof Error?e.toString():e)}function T(e){s.issue("group",e)}function _(){s.issue("endgroup")}!function(e){e[e.Success=0]="Success",e[e.Failure=1]="Failure"}(v=e.ExitCode||(e.ExitCode={})),e.exportVariable=function(e,p){const a=m.toCommandValue(p);if(process.env[e]=a,process.env.GITHUB_ENV||"")return o.issueFileCommand("ENV",o.prepareKeyValueMessage(e,p));s.issueCommand("set-env",{name:e},a)},e.setSecret=function(e){s.issueCommand("add-mask",{},e)},e.addPath=function(e){process.env.GITHUB_PATH||""?o.issueFileCommand("PATH",e):s.issueCommand("add-path",{},e),process.env.PATH=`${e}${l.delimiter}${process.env.PATH}`},e.getInput=g,e.getMultilineInput=function(e,p){const a=g(e,p).split("\n").filter((e=>""!==e));return p&&!1===p.trimWhitespace?a:a.map((e=>e.trim()))},e.getBooleanInput=function(e,p){const a=g(e,p);if(["true","True","TRUE"].includes(a))return!0;if(["false","False","FALSE"].includes(a))return!1;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\nSupport boolean input list: \`true | True | TRUE | false | False | FALSE\``)},e.setOutput=function(e,p){if(process.env.GITHUB_OUTPUT||"")return o.issueFileCommand("OUTPUT",o.prepareKeyValueMessage(e,p));process.stdout.write(n.EOL),s.issueCommand("set-output",{name:e},m.toCommandValue(p))},e.setCommandEcho=function(e){s.issue("echo",e?"on":"off")},e.setFailed=function(e){process.exitCode=v.Failure,f(e)},e.isDebug=function(){return"1"===process.env.RUNNER_DEBUG},e.debug=function(e){s.issueCommand("debug",{},e)},e.error=f,e.warning=function(e,p={}){s.issueCommand("warning",m.toCommandProperties(p),e instanceof Error?e.toString():e)},e.notice=function(e,p={}){s.issueCommand("notice",m.toCommandProperties(p),e instanceof Error?e.toString():e)},e.info=function(e){process.stdout.write(e+n.EOL)},e.startGroup=T,e.endGroup=_,e.group=function(e,p){return i(this,void 0,void 0,(function*(){let a;T(e);try{a=yield p()}finally{_()}return a}))},e.saveState=function(e,p){if(process.env.GITHUB_STATE||"")return o.issueFileCommand("STATE",o.prepareKeyValueMessage(e,p));s.issueCommand("save-state",{name:e},m.toCommandValue(p))},e.getState=function(e){return process.env[`STATE_${e}`]||""},e.getIDToken=function(e){return i(this,void 0,void 0,(function*(){return yield c.OidcClient.getIDToken(e)}))};var b=ke();Object.defineProperty(e,"summary",{enumerable:!0,get:function(){return b.summary}});var E=ke();Object.defineProperty(e,"markdownSummary",{enumerable:!0,get:function(){return E.markdownSummary}});var y=function(){if(Ge)return Ve;Ge=1;var e=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),p=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),d=u&&u.__importStar||function(a){if(a&&a.__esModule)return a;var d={};if(null!=a)for(var t in a)"default"!==t&&Object.hasOwnProperty.call(a,t)&&e(d,a,t);return p(d,a),d};Object.defineProperty(Ve,"__esModule",{value:!0}),Ve.toPlatformPath=Ve.toWin32Path=Ve.toPosixPath=void 0;const t=d(a);return Ve.toPosixPath=function(e){return e.replace(/[\\]/g,"/")},Ve.toWin32Path=function(e){return e.replace(/[/]/g,"\\")},Ve.toPlatformPath=function(e){return e.replace(/[/\\]/g,t.sep)},Ve}();Object.defineProperty(e,"toPosixPath",{enumerable:!0,get:function(){return y.toPosixPath}}),Object.defineProperty(e,"toWin32Path",{enumerable:!0,get:function(){return y.toWin32Path}}),Object.defineProperty(e,"toPlatformPath",{enumerable:!0,get:function(){return y.toPlatformPath}})}(v)),v}var Re=Ce(),Ue={},Fe={};Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.Context=void 0;const xe=e,je=p;Fe.Context=class{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(xe.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(xe.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${je.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,p]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:p}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};var Be={},Le={},qe={},$e={};function Ie(e){if(!e.hostname)return!1;let p,a=process.env.no_proxy||process.env.NO_PROXY||"";if(!a)return!1;e.port?p=Number(e.port):"http:"===e.protocol?p=80:"https:"===e.protocol&&(p=443);let d=[e.hostname.toUpperCase()];"number"==typeof p&&d.push(`${d[0]}:${p}`);for(let e of a.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e)))if(d.some((p=>p===e)))return!0;return!1}Object.defineProperty($e,"__esModule",{value:!0}),$e.getProxyUrl=function(e){let p,a,d="https:"===e.protocol;return Ie(e)||(a=d?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY,a&&(p=new URL(a))),p},$e.checkBypass=Ie,function(e){Object.defineProperty(e,"__esModule",{value:!0});const p=d,a=t,r=$e;let i;var s,o,m;!function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"}(s=e.HttpCodes||(e.HttpCodes={})),function(e){e.Accept="accept",e.ContentType="content-type"}(o=e.Headers||(e.Headers={})),function(e){e.ApplicationJson="application/json"}(m=e.MediaTypes||(e.MediaTypes={})),e.getProxyUrl=function(e){let p=r.getProxyUrl(new URL(e));return p?p.href:""};const n=[s.MovedPermanently,s.ResourceMoved,s.SeeOther,s.TemporaryRedirect,s.PermanentRedirect],l=[s.BadGateway,s.ServiceUnavailable,s.GatewayTimeout],u=["OPTIONS","GET","DELETE","HEAD"];class c extends Error{constructor(e,p){super(e),this.name="HttpClientError",this.statusCode=p,Object.setPrototypeOf(this,c.prototype)}}e.HttpClientError=c;class v{constructor(e){this.message=e}readBody(){return new Promise((async(e,p)=>{let a=Buffer.alloc(0);this.message.on("data",(e=>{a=Buffer.concat([a,e])})),this.message.on("end",(()=>{e(a.toString())}))}))}}e.HttpClientResponse=v,e.isHttps=function(e){return"https:"===new URL(e).protocol};class h{constructor(e,p,a){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=p||[],this.requestOptions=a,a&&(null!=a.ignoreSslError&&(this._ignoreSslError=a.ignoreSslError),this._socketTimeout=a.socketTimeout,null!=a.allowRedirects&&(this._allowRedirects=a.allowRedirects),null!=a.allowRedirectDowngrade&&(this._allowRedirectDowngrade=a.allowRedirectDowngrade),null!=a.maxRedirects&&(this._maxRedirects=Math.max(a.maxRedirects,0)),null!=a.keepAlive&&(this._keepAlive=a.keepAlive),null!=a.allowRetries&&(this._allowRetries=a.allowRetries),null!=a.maxRetries&&(this._maxRetries=a.maxRetries))}options(e,p){return this.request("OPTIONS",e,null,p||{})}get(e,p){return this.request("GET",e,null,p||{})}del(e,p){return this.request("DELETE",e,null,p||{})}post(e,p,a){return this.request("POST",e,p,a||{})}patch(e,p,a){return this.request("PATCH",e,p,a||{})}put(e,p,a){return this.request("PUT",e,p,a||{})}head(e,p){return this.request("HEAD",e,null,p||{})}sendStream(e,p,a,d){return this.request(e,p,a,d)}async getJson(e,p={}){p[o.Accept]=this._getExistingOrDefaultHeader(p,o.Accept,m.ApplicationJson);let a=await this.get(e,p);return this._processResponse(a,this.requestOptions)}async postJson(e,p,a={}){let d=JSON.stringify(p,null,2);a[o.Accept]=this._getExistingOrDefaultHeader(a,o.Accept,m.ApplicationJson),a[o.ContentType]=this._getExistingOrDefaultHeader(a,o.ContentType,m.ApplicationJson);let t=await this.post(e,d,a);return this._processResponse(t,this.requestOptions)}async putJson(e,p,a={}){let d=JSON.stringify(p,null,2);a[o.Accept]=this._getExistingOrDefaultHeader(a,o.Accept,m.ApplicationJson),a[o.ContentType]=this._getExistingOrDefaultHeader(a,o.ContentType,m.ApplicationJson);let t=await this.put(e,d,a);return this._processResponse(t,this.requestOptions)}async patchJson(e,p,a={}){let d=JSON.stringify(p,null,2);a[o.Accept]=this._getExistingOrDefaultHeader(a,o.Accept,m.ApplicationJson),a[o.ContentType]=this._getExistingOrDefaultHeader(a,o.ContentType,m.ApplicationJson);let t=await this.patch(e,d,a);return this._processResponse(t,this.requestOptions)}async request(e,p,a,d){if(this._disposed)throw new Error("Client has already been disposed.");let t,r=new URL(p),i=this._prepareRequest(e,r,d),o=this._allowRetries&&-1!=u.indexOf(e)?this._maxRetries+1:1,m=0;for(;m0;){const s=t.message.headers.location;if(!s)break;let o=new URL(s);if("https:"==r.protocol&&r.protocol!=o.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(await t.readBody(),o.hostname!==r.hostname)for(let e in d)"authorization"===e.toLowerCase()&&delete d[e];i=this._prepareRequest(e,o,d),t=await this.requestRaw(i,a),p--}if(-1==l.indexOf(t.message.statusCode))return t;m+=1,m{this.requestRawWithCallback(e,p,(function(e,p){e&&d(e),a(p)}))}))}requestRawWithCallback(e,p,a){let d;"string"==typeof p&&(e.options.headers["Content-Length"]=Buffer.byteLength(p,"utf8"));let t=!1,r=(e,p)=>{t||(t=!0,a(e,p))},i=e.httpModule.request(e.options,(e=>{let p=new v(e);r(null,p)}));i.on("socket",(e=>{d=e})),i.setTimeout(this._socketTimeout||18e4,(()=>{d&&d.end(),r(new Error("Request timeout: "+e.options.path),null)})),i.on("error",(function(e){r(e,null)})),p&&"string"==typeof p&&i.write(p,"utf8"),p&&"string"!=typeof p?(p.on("close",(function(){i.end()})),p.pipe(i)):i.end()}getAgent(e){let p=new URL(e);return this._getAgent(p)}_prepareRequest(e,d,t){const r={};r.parsedUrl=d;const i="https:"===r.parsedUrl.protocol;r.httpModule=i?a:p;const s=i?443:80;return r.options={},r.options.host=r.parsedUrl.hostname,r.options.port=r.parsedUrl.port?parseInt(r.parsedUrl.port):s,r.options.path=(r.parsedUrl.pathname||"")+(r.parsedUrl.search||""),r.options.method=e,r.options.headers=this._mergeHeaders(t),null!=this.userAgent&&(r.options.headers["user-agent"]=this.userAgent),r.options.agent=this._getAgent(r.parsedUrl),this.handlers&&this.handlers.forEach((e=>{e.prepareRequest(r.options)})),r}_mergeHeaders(e){const p=e=>Object.keys(e).reduce(((p,a)=>(p[a.toLowerCase()]=e[a],p)),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},p(this.requestOptions.headers),p(e)):p(e||{})}_getExistingOrDefaultHeader(e,p,a){let d;var t;return this.requestOptions&&this.requestOptions.headers&&(d=(t=this.requestOptions.headers,Object.keys(t).reduce(((e,p)=>(e[p.toLowerCase()]=t[p],e)),{}))[p]),e[p]||d||a}_getAgent(e){let d,t=r.getProxyUrl(e),s=t&&t.hostname;if(this._keepAlive&&s&&(d=this._proxyAgent),this._keepAlive&&!s&&(d=this._agent),d)return d;const o="https:"===e.protocol;let m=100;if(this.requestOptions&&(m=this.requestOptions.maxSockets||p.globalAgent.maxSockets),s){i||(i=ue.exports);const e={maxSockets:m,keepAlive:this._keepAlive,proxy:{...(t.username||t.password)&&{proxyAuth:`${t.username}:${t.password}`},host:t.hostname,port:t.port}};let p;const a="https:"===t.protocol;p=o?a?i.httpsOverHttps:i.httpsOverHttp:a?i.httpOverHttps:i.httpOverHttp,d=p(e),this._proxyAgent=d}if(this._keepAlive&&!d){const e={keepAlive:this._keepAlive,maxSockets:m};d=o?new a.Agent(e):new p.Agent(e),this._agent=d}return d||(d=o?a.globalAgent:p.globalAgent),o&&this._ignoreSslError&&(d.options=Object.assign(d.options||{},{rejectUnauthorized:!1})),d}_performExponentialBackoff(e){e=Math.min(10,e);const p=5*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),p)))}static dateTimeDeserializer(e,p){if("string"==typeof p){let e=new Date(p);if(!isNaN(e.valueOf()))return e}return p}async _processResponse(e,p){return new Promise((async(a,d)=>{const t=e.message.statusCode,r={statusCode:t,result:null,headers:{}};let i,o;t==s.NotFound&&a(r);try{o=await e.readBody(),o&&o.length>0&&(i=p&&p.deserializeDates?JSON.parse(o,h.dateTimeDeserializer):JSON.parse(o),r.result=i),r.headers=e.message.headers}catch(e){}if(t>299){let e;e=i&&i.message?i.message:o&&o.length>0?o:"Failed request: ("+t+")";let p=new c(e,t);p.result=r.result,d(p)}else a(r)}))}}e.HttpClient=h}(qe);var He=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),Me=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),ze=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&He(p,e,a);return Me(p,e),p};Object.defineProperty(Le,"__esModule",{value:!0}),Le.getApiBaseUrl=Le.getProxyAgent=Le.getAuthString=void 0;const We=ze(qe);function Je(){return"object"==typeof navigator&&"userAgent"in navigator?navigator.userAgent:"object"==typeof process&&"version"in process?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}Le.getAuthString=function(e,p){if(!e&&!p.auth)throw new Error("Parameter token or opts.auth is required");if(e&&p.auth)throw new Error("Parameters token and opts.auth may not both be specified");return"string"==typeof p.auth?p.auth:`token ${e}`},Le.getProxyAgent=function(e){return(new We.HttpClient).getAgent(e)},Le.getApiBaseUrl=function(){return process.env.GITHUB_API_URL||"https://api.github.com"};var Ke={exports:{}},Ye=function e(p,a,d,t){if("function"!=typeof d)throw new Error("method for before hook must be a function");t||(t={});if(Array.isArray(a))return a.reverse().reduce((function(a,d){return e.bind(null,p,d,a,t)}),d)();return Promise.resolve().then((function(){return p.registry[a]?p.registry[a].reduce((function(e,p){return p.hook.bind(null,e,t)}),d)():d(t)}))};var Ze=function(e,p,a,d){var t=d;e.registry[a]||(e.registry[a]=[]);"before"===p&&(d=function(e,p){return Promise.resolve().then(t.bind(null,p)).then(e.bind(null,p))});"after"===p&&(d=function(e,p){var a;return Promise.resolve().then(e.bind(null,p)).then((function(e){return t(a=e,p)})).then((function(){return a}))});"error"===p&&(d=function(e,p){return Promise.resolve().then(e.bind(null,p)).catch((function(e){return t(e,p)}))});e.registry[a].push({hook:d,orig:t})};var Xe=Ye,Qe=Ze,ep=function(e,p,a){if(!e.registry[p])return;var d=e.registry[p].map((function(e){return e.orig})).indexOf(a);if(-1===d)return;e.registry[p].splice(d,1)},pp=Function.bind,ap=pp.bind(pp);function dp(e,p,a){var d=ap(ep,null).apply(null,a?[p,a]:[p]);e.api={remove:d},e.remove=d,["before","error","after","wrap"].forEach((function(d){var t=a?[p,d,a]:[p,d];e[d]=e.api[d]=ap(Qe,null).apply(null,t)}))}function tp(){var e={registry:{}},p=Xe.bind(null,e);return dp(p,e),p}var rp=!1;function ip(){return rp||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),rp=!0),tp()}ip.Singular=function(){var e={registry:{}},p=Xe.bind(null,e,"h");return dp(p,e,"h"),p}.bind(),ip.Collection=tp.bind(),Ke.exports=ip,Ke.exports.Hook=ip,Ke.exports.Singular=ip.Singular;var sp=Ke.exports.Collection=ip.Collection; /*! * is-plain-object * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. - */function op(e){return"[object Object]"===Object.prototype.toString.call(e)}function mp(e){var p,a;return!1!==op(e)&&(void 0===(p=e.constructor)||!1!==op(a=p.prototype)&&!1!==a.hasOwnProperty("isPrototypeOf"))}function lp(e,p){const a=Object.assign({},e);return Object.keys(p).forEach((d=>{mp(p[d])?d in e?a[d]=lp(e[d],p[d]):Object.assign(a,{[d]:p[d]}):Object.assign(a,{[d]:p[d]})})),a}function np(e){for(const p in e)void 0===e[p]&&delete e[p];return e}function up(e,p,a){if("string"==typeof p){let[e,d]=p.split(" ");a=Object.assign(d?{method:e,url:d}:{url:e},a)}else a=Object.assign({},p);var d;a.headers=(d=a.headers)?Object.keys(d).reduce(((e,p)=>(e[p.toLowerCase()]=d[p],e)),{}):{},np(a),np(a.headers);const t=lp(e||{},a);return e&&e.mediaType.previews.length&&(t.mediaType.previews=e.mediaType.previews.filter((e=>!t.mediaType.previews.includes(e))).concat(t.mediaType.previews)),t.mediaType.previews=t.mediaType.previews.map((e=>e.replace(/-preview/,""))),t}const cp=/\{[^}]+\}/g;function vp(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function hp(e,p){return Object.keys(e).filter((e=>!p.includes(e))).reduce(((p,a)=>(p[a]=e[a],p)),{})}function wp(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){return/%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")),e})).join("")}function gp(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function fp(e,p,a){return p="+"===e||"#"===e?wp(p):gp(p),a?gp(a)+"="+p:p}function Tp(e){return null!=e}function _p(e){return";"===e||"&"===e||"?"===e}function bp(e,p){var a=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,d,t){if(d){let e="";const t=[];if(-1!==a.indexOf(d.charAt(0))&&(e=d.charAt(0),d=d.substr(1)),d.split(/,/g).forEach((function(a){var d=/([^:\*]*)(?::(\d+)|(\*))?/.exec(a);t.push(function(e,p,a,d){var t=e[a],r=[];if(Tp(t)&&""!==t)if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)t=t.toString(),d&&"*"!==d&&(t=t.substring(0,parseInt(d,10))),r.push(fp(p,t,_p(p)?a:""));else if("*"===d)Array.isArray(t)?t.filter(Tp).forEach((function(e){r.push(fp(p,e,_p(p)?a:""))})):Object.keys(t).forEach((function(e){Tp(t[e])&&r.push(fp(p,t[e],e))}));else{const e=[];Array.isArray(t)?t.filter(Tp).forEach((function(a){e.push(fp(p,a))})):Object.keys(t).forEach((function(a){Tp(t[a])&&(e.push(gp(a)),e.push(fp(p,t[a].toString())))})),_p(p)?r.push(gp(a)+"="+e.join(",")):0!==e.length&&r.push(e.join(","))}else";"===p?Tp(t)&&r.push(gp(a)):""!==t||"&"!==p&&"?"!==p?""===t&&r.push(""):r.push(gp(a)+"=");return r}(p,e,d[1],d[2]||d[3]))})),e&&"+"!==e){var r=",";return"?"===e?r="&":"#"!==e&&(r=e),(0!==t.length?e:"")+t.join(r)}return t.join(",")}return wp(t)}))}function Ep(e){let p,a=e.method.toUpperCase(),d=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),t=Object.assign({},e.headers),r=hp(e,["method","baseUrl","url","headers","request","mediaType"]);const i=function(e){const p=e.match(cp);return p?p.map(vp).reduce(((e,p)=>e.concat(p)),[]):[]}(d);var s;d=(s=d,{expand:bp.bind(null,s)}).expand(r),/^http/.test(d)||(d=e.baseUrl+d);const o=hp(r,Object.keys(e).filter((e=>i.includes(e))).concat("baseUrl"));if(!/application\/octet-stream/i.test(t.accept)&&(e.mediaType.format&&(t.accept=t.accept.split(/,/).map((p=>p.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")),e.mediaType.previews.length)){const p=t.accept.match(/[\w-]+(?=-preview)/g)||[];t.accept=p.concat(e.mediaType.previews).map((p=>`application/vnd.github.${p}-preview${e.mediaType.format?`.${e.mediaType.format}`:"+json"}`)).join(",")}return["GET","HEAD"].includes(a)?d=function(e,p){const a=/\?/.test(e)?"&":"?",d=Object.keys(p);return 0===d.length?e:e+a+d.map((e=>"q"===e?"q="+p.q.split("+").map(encodeURIComponent).join("+"):`${e}=${encodeURIComponent(p[e])}`)).join("&")}(d,o):"data"in o?p=o.data:Object.keys(o).length?p=o:t["content-length"]=0,t["content-type"]||void 0===p||(t["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(a)&&void 0===p&&(p=""),Object.assign({method:a,url:d,headers:t},void 0!==p?{body:p}:null,e.request?{request:e.request}:null)}function yp(e,p,a){return Ep(up(e,p,a))}const Sp=function e(p,a){const d=up(p,a),t=yp.bind(null,d);return Object.assign(t,{DEFAULTS:d,defaults:e.bind(null,d),merge:up.bind(null,d),parse:Ep})}(null,{method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":`octokit-endpoint.js/6.0.10 ${Je()}`},mediaType:{format:"",previews:[]}});var Dp={},Np={exports:{}},Ap={},Op=Ap;function kp(e){return e<0?-1:1}function Gp(e,p){p.unsigned||--e;const a=p.unsigned?0:-Math.pow(2,e),d=Math.pow(2,e)-1,t=p.moduloBitLength?Math.pow(2,p.moduloBitLength):Math.pow(2,e),r=p.moduloBitLength?Math.pow(2,p.moduloBitLength-1):Math.pow(2,e-1);return function(e,i){i||(i={});let s=+e;if(i.enforceRange){if(!Number.isFinite(s))throw new TypeError("Argument is not a finite number");if(s=kp(s)*Math.floor(Math.abs(s)),sd)throw new TypeError("Argument is not in byte range");return s}if(!isNaN(s)&&i.clamp)return s=function(e){return e%1==.5&&0==(1&e)?Math.floor(e):Math.round(e)}(s),sd&&(s=d),s;if(!Number.isFinite(s)||0===s)return 0;if(s=kp(s)*Math.floor(Math.abs(s)),s%=t,!p.unsigned&&s>=r)return s-t;if(p.unsigned)if(s<0)s+=t;else if(-0===s)return 0;return s}}Ap.void=function(){},Ap.boolean=function(e){return!!e},Ap.byte=Gp(8,{unsigned:!1}),Ap.octet=Gp(8,{unsigned:!0}),Ap.short=Gp(16,{unsigned:!1}),Ap["unsigned short"]=Gp(16,{unsigned:!0}),Ap.long=Gp(32,{unsigned:!1}),Ap["unsigned long"]=Gp(32,{unsigned:!0}),Ap["long long"]=Gp(32,{unsigned:!1,moduloBitLength:64}),Ap["unsigned long long"]=Gp(32,{unsigned:!0,moduloBitLength:64}),Ap.double=function(e){const p=+e;if(!Number.isFinite(p))throw new TypeError("Argument is not a finite floating-point value");return p},Ap["unrestricted double"]=function(e){const p=+e;if(isNaN(p))throw new TypeError("Argument is NaN");return p},Ap.float=Ap.double,Ap["unrestricted float"]=Ap["unrestricted double"],Ap.DOMString=function(e,p){return p||(p={}),p.treatNullAsEmptyString&&null===e?"":String(e)},Ap.ByteString=function(e,p){const a=String(e);let d;for(let e=0;void 0!==(d=a.codePointAt(e));++e)if(d>255)throw new TypeError("Argument is not a valid bytestring");return a},Ap.USVString=function(e){const p=String(e),a=p.length,d=[];for(let e=0;e57343)d.push(String.fromCodePoint(t));else if(56320<=t&&t<=57343)d.push(String.fromCodePoint(65533));else if(e===a-1)d.push(String.fromCodePoint(65533));else{const a=p.charCodeAt(e+1);if(56320<=a&&a<=57343){const p=1023&t,r=1023&a;d.push(String.fromCodePoint(65536+1024*p+r)),++e}else d.push(String.fromCodePoint(65533))}}return d.join("")},Ap.Date=function(e,p){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},Ap.RegExp=function(e,p){return e instanceof RegExp||(e=new RegExp(e)),e};var Pp,Vp={exports:{}};(Pp=Vp).exports.mixin=function(e,p){const a=Object.getOwnPropertyNames(p);for(let d=0;d=e)return t;t[0][0]>e?a=d-1:p=d+1}return null}var Lp=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function Ip(e){return e.replace(Lp,"_").length}var Hp=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function $p(e,p){"xn--"===e.substr(0,4)&&(e=Fp.toUnicode(e));var a=!1;(Bp(e)!==e||"-"===e[3]&&"-"===e[4]||"-"===e[0]||"-"===e[e.length-1]||-1!==e.indexOf(".")||0===e.search(Hp))&&(a=!0);for(var d=Ip(e),t=0;t253||0===i.length)&&(t.error=!0);for(var s=0;s63||0===r.length){t.error=!0;break}}return t.error?null:r.join(".")},Up.toUnicode=function(e,p){var a=Mp(e,p,xp.NONTRANSITIONAL);return{domain:a.string,error:a.error}},Up.PROCESSING_OPTIONS=xp,function(e){const p=l,a=Up,d={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},t=Symbol("failure");function r(e){return p.ucs2.decode(e).length}function i(e,p){const a=e[p];return isNaN(a)?void 0:String.fromCodePoint(a)}function s(e){return e>=48&&e<=57}function o(e){return e>=65&&e<=90||e>=97&&e<=122}function m(e){return s(e)||e>=65&&e<=70||e>=97&&e<=102}function n(e){return"."===e||"%2e"===e.toLowerCase()}function u(e){return 2===e.length&&o(e.codePointAt(0))&&(":"===e[1]||"|"===e[1])}function c(e){return void 0!==d[e]}function v(e){return c(e.scheme)}function h(e){let p=e.toString(16).toUpperCase();return 1===p.length&&(p="0"+p),"%"+p}function w(e){return e<=31||e>126}const g=new Set([32,34,35,60,62,63,96,123,125]);function f(e){return w(e)||g.has(e)}const T=new Set([47,58,59,61,64,91,92,93,94,124]);function _(e){return f(e)||T.has(e)}function b(e,p){const a=String.fromCodePoint(e);return p(e)?function(e){const p=new Buffer(e);let a="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),p=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),p=8),""===e)return 0;return(10===p?/[^0-9]/:16===p?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?t:parseInt(e,p)}function y(e,d){if("["===e[0])return"]"!==e[e.length-1]?t:function(e){const a=[0,0,0,0,0,0,0,0];let d=0,r=null,o=0;if(58===(e=p.ucs2.decode(e))[o]){if(58!==e[o+1])return t;o+=2,++d,r=d}for(;o6)return t;let p=0;for(;void 0!==e[o];){let r=null;if(p>0){if(!(46===e[o]&&p<4))return t;++o}if(!s(e[o]))return t;for(;s(e[o]);){const p=parseInt(i(e,o));if(null===r)r=p;else{if(0===r)return t;r=10*r+p}if(r>255)return t;++o}a[d]=256*a[d]+r,++p,2!==p&&4!==p||++d}if(4!==p)return t;break}if(58===e[o]){if(++o,void 0===e[o])return t}else if(void 0!==e[o])return t;a[d]=p,++d}if(null!==r){let e=d-r;for(d=7;0!==d&&e>0;){const p=a[r+e-1];a[r+e-1]=a[d],a[d]=p,--d,--e}}else if(null===r&&8!==d)return t;return a}(e.substring(1,e.length-1));if(!d)return function(e){if(a=e,-1!==a.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/))return t;var a;let d="";const r=p.ucs2.decode(e);for(let e=0;e1&&p.pop(),p.length>4)return e;const a=[];for(const d of p){if(""===d)return e;const p=E(d);if(p===t)return e;a.push(p)}for(let e=0;e255)return t;if(a[a.length-1]>=Math.pow(256,5-a.length))return t;let d=a.pop(),r=0;for(const e of a)d+=e*Math.pow(256,3-r),++r;return d}(o);return"number"==typeof l||l===t?l:o}function S(e){return"number"==typeof e?function(e){let p="",a=e;for(let e=1;e<=4;++e)p=String(a%256)+p,4!==e&&(p="."+p),a=Math.floor(a/256);return p}(e):e instanceof Array?"["+function(e){let p="";const a=function(e){let p=null,a=1,d=null,t=0;for(let r=0;ra&&(p=d,a=t),d=null,t=0):(null===d&&(d=r),++t);return t>a&&(p=d,a=t),{idx:p,len:a}}(e),d=a.idx;let t=!1;for(let a=0;a<=7;++a)t&&0===e[a]||(t&&(t=!1),d!==a?(p+=e[a].toString(16),7!==a&&(p+=":")):(p+=0===a?"::":":",t=!0));return p}(e)+"]":e}function D(e){const p=e.path;var a;0!==p.length&&("file"===e.scheme&&1===p.length&&(a=p[0],/^[A-Za-z]:$/.test(a))||p.pop())}function N(e){return""!==e.username||""!==e.password}function A(e,a,d,r,i){if(this.pointer=0,this.input=e,this.base=a||null,this.encodingOverride=d||"utf-8",this.stateOverride=i,this.url=r,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const s=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(s!==this.input&&(this.parseError=!0),this.input=s,this.state=i||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=p.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],p=isNaN(e)?void 0:String.fromCodePoint(e),a=this["parse "+this.state](e,p);if(!a)break;if(a===t){this.failure=!0;break}}}A.prototype["parse scheme start"]=function(e,p){if(o(e))this.buffer+=p.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,t;this.state="no scheme",--this.pointer}return!0},A.prototype["parse scheme"]=function(e,p){if(function(e){return o(e)||s(e)}(e)||43===e||45===e||46===e)this.buffer+=p.toLowerCase();else if(58===e){if(this.stateOverride){if(v(this.url)&&!c(this.buffer))return!1;if(!v(this.url)&&c(this.buffer))return!1;if((N(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.buffer="",this.stateOverride)return!1;"file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):v(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":v(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,t;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},A.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?t:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},A.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},A.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},A.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):v(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},A.prototype["parse relative slash"]=function(e){return!v(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},A.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},A.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},A.prototype["parse authority"]=function(e,p){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=r(this.buffer);for(let p=0;pMath.pow(2,16)-1)return this.parseError=!0,t;this.url.port=e===(a=this.url.scheme,d[a])?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}var a;return!0};const O=new Set([47,92,63,35]);A.prototype["parse file"]=function(e){var p,a;return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1==0||(p=e,a=this.input[this.pointer+1],!o(p)||58!==a&&124!==a)||this.input.length-this.pointer-1>=2&&!O.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),D(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},A.prototype["parse file slash"]=function(e){var p;return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null!==this.base&&"file"===this.base.scheme&&(2===(p=this.base.path[0]).length&&o(p.codePointAt(0))&&":"===p[1]?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0},A.prototype["parse file host"]=function(e,p){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&u(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=y(this.buffer,v(this.url));if(e===t)return t;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=p;return!0},A.prototype["parse path start"]=function(e){return v(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},A.prototype["parse path"]=function(e){if(isNaN(e)||47===e||v(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(v(this.url)&&92===e&&(this.parseError=!0),".."===(p=(p=this.buffer).toLowerCase())||"%2e."===p||".%2e"===p||"%2e%2e"===p?(D(this.url),47===e||v(this.url)&&92===e||this.url.path.push("")):!n(this.buffer)||47===e||v(this.url)&&92===e?n(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&u(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=b(e,f);var p;return!0},A.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+b(e,w))),!0},A.prototype["parse query"]=function(e,p){if(isNaN(e)||!this.stateOverride&&35===e){v(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const p=new Buffer(this.buffer);for(let e=0;e126||34===p[e]||35===p[e]||60===p[e]||62===p[e]?this.url.query+=h(p[e]):this.url.query+=String.fromCodePoint(p[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=p;return!0},A.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=b(e,w))),!0},e.exports.serializeURL=function(e,p){let a=e.scheme+":";if(null!==e.host?(a+="//",""===e.username&&""===e.password||(a+=e.username,""!==e.password&&(a+=":"+e.password),a+="@"),a+=S(e.host),null!==e.port&&(a+=":"+e.port)):null===e.host&&"file"===e.scheme&&(a+="//"),e.cannotBeABaseURL)a+=e.path[0];else for(const p of e.path)a+="/"+p;return null!==e.query&&(a+="?"+e.query),p||null===e.fragment||(a+="#"+e.fragment),a},e.exports.serializeURLOrigin=function(p){switch(p.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(p.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let p=e.scheme+"://";return p+=S(e.host),null!==e.port&&(p+=":"+e.port),p}({scheme:p.scheme,host:p.host,port:p.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,p){void 0===p&&(p={});const a=new A(e,p.baseURL,p.encodingOverride,p.url,p.stateOverride);return a.failure?"failure":a.url},e.exports.setTheUsername=function(e,a){e.username="";const d=p.ucs2.decode(a);for(let p=0;p!!e&&e[t]instanceof d.implementation,create(e,p){let a=Object.create(r.prototype);return this.setup(a,e,p),a},setup(e,p,r){r||(r={}),r.wrapper=e,e[t]=new d.implementation(p,r),e[t][a.wrapperSymbol]=e},interface:r,expose:{Window:{URL:r},Worker:{URL:r}}}}(Np),Dp.URL=Np.exports.interface,Dp.serializeURL=Rp.exports.serializeURL,Dp.serializeURLOrigin=Rp.exports.serializeURLOrigin,Dp.basicURLParse=Rp.exports.basicURLParse,Dp.setTheUsername=Rp.exports.setTheUsername,Dp.setThePassword=Rp.exports.setThePassword,Dp.serializeHost=Rp.exports.serializeHost,Dp.serializeInteger=Rp.exports.serializeInteger,Dp.parseURL=Rp.exports.parseURL;const Wp=o.Readable,Jp=Symbol("buffer"),Kp=Symbol("type");class Yp{constructor(){this[Kp]="";const e=arguments[0],p=arguments[1],a=[];let d=0;if(e){const p=e,t=Number(p.length);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{},d=a.size;let t=void 0===d?0:d;var r=a.timeout;let i=void 0===r?0:r;null==e?e=null:da(e)?e=Buffer.from(e.toString()):ta(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof o||(e=Buffer.from(String(e)))),this[Qp]={body:e,disturbed:!1,error:null},this.size=t,this.timeout=i,e instanceof o&&e.on("error",(function(e){const a="AbortError"===e.name?e:new Zp(`Invalid response body while trying to fetch ${p.url}: ${e.message}`,"system",e);p[Qp].error=a}))}function aa(){var e=this;if(this[Qp].disturbed)return pa.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[Qp].disturbed=!0,this[Qp].error)return pa.Promise.reject(this[Qp].error);let p=this.body;if(null===p)return pa.Promise.resolve(Buffer.alloc(0));if(ta(p)&&(p=p.stream()),Buffer.isBuffer(p))return pa.Promise.resolve(p);if(!(p instanceof o))return pa.Promise.resolve(Buffer.alloc(0));let a=[],d=0,t=!1;return new pa.Promise((function(r,i){let s;e.timeout&&(s=setTimeout((function(){t=!0,i(new Zp(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),p.on("error",(function(p){"AbortError"===p.name?(t=!0,i(p)):i(new Zp(`Invalid response body while trying to fetch ${e.url}: ${p.message}`,"system",p))})),p.on("data",(function(p){if(!t&&null!==p){if(e.size&&d+p.length>e.size)return t=!0,void i(new Zp(`content size at ${e.url} over limit: ${e.size}`,"max-size"));d+=p.length,a.push(p)}})),p.on("end",(function(){if(!t){clearTimeout(s);try{r(Buffer.concat(a,d))}catch(p){i(new Zp(`Could not create Buffer from response body for ${e.url}: ${p.message}`,"system",p))}}}))}))}function da(e){return"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&("URLSearchParams"===e.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(e)||"function"==typeof e.sort)}function ta(e){return"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function ra(e){let p,a,d=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return d instanceof o&&"function"!=typeof d.getBoundary&&(p=new ea,a=new ea,d.pipe(p),d.pipe(a),e[Qp].body=p,d=a),d}function ia(e){return null===e?null:"string"==typeof e?"text/plain;charset=UTF-8":da(e)?"application/x-www-form-urlencoded;charset=UTF-8":ta(e)?e.type||null:Buffer.isBuffer(e)||"[object ArrayBuffer]"===Object.prototype.toString.call(e)||ArrayBuffer.isView(e)?null:"function"==typeof e.getBoundary?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof o?null:"text/plain;charset=UTF-8"}function sa(e){const p=e.body;return null===p?0:ta(p)?p.size:Buffer.isBuffer(p)?p.length:p&&"function"==typeof p.getLengthSync&&(p._lengthRetrievers&&0==p._lengthRetrievers.length||p.hasKnownLength&&p.hasKnownLength())?p.getLengthSync():null}pa.prototype={get body(){return this[Qp].body},get bodyUsed(){return this[Qp].disturbed},arrayBuffer(){return aa.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return aa.call(this).then((function(p){return Object.assign(new Yp([],{type:e.toLowerCase()}),{[Jp]:p})}))},json(){var e=this;return aa.call(this).then((function(p){try{return JSON.parse(p.toString())}catch(p){return pa.Promise.reject(new Zp(`invalid json response body at ${e.url} reason: ${p.message}`,"invalid-json"))}}))},text(){return aa.call(this).then((function(e){return e.toString()}))},buffer(){return aa.call(this)},textConverted(){var e=this;return aa.call(this).then((function(p){return function(e,p){if("function"!=typeof Xp)throw new Error("The package `encoding` must be installed to use the textConverted() function");const a=p.get("content-type");let d,t,r="utf-8";a&&(d=/charset=([^;]*)/i.exec(a));t=e.slice(0,1024).toString(),!d&&t&&(d=/0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[ca]=Object.create(null),e instanceof va){const p=e.raw(),a=Object.keys(p);for(const e of a)for(const a of p[e])this.append(e,a)}else if(null==e);else{if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");{const p=e[Symbol.iterator];if(null!=p){if("function"!=typeof p)throw new TypeError("Header pairs must be iterable");const a=[];for(const p of e){if("object"!=typeof p||"function"!=typeof p[Symbol.iterator])throw new TypeError("Each header pair must be iterable");a.push(Array.from(p))}for(const e of a){if(2!==e.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(e[0],e[1])}}else for(const p of Object.keys(e)){const a=e[p];this.append(p,a)}}}}get(e){la(e=`${e}`);const p=ua(this[ca],e);return void 0===p?null:this[ca][p].join(", ")}forEach(e){let p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,a=ha(this),d=0;for(;d1&&void 0!==arguments[1]?arguments[1]:"key+value";const a=Object.keys(e[ca]).sort();return a.map("key"===p?function(e){return e.toLowerCase()}:"value"===p?function(p){return e[ca][p].join(", ")}:function(p){return[p.toLowerCase(),e[ca][p].join(", ")]})}va.prototype.entries=va.prototype[Symbol.iterator],Object.defineProperty(va.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(va.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const wa=Symbol("internal");function ga(e,p){const a=Object.create(fa);return a[wa]={target:e,kind:p,index:0},a}const fa=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==fa)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[wa];const p=e.target,a=e.kind,d=e.index,t=ha(p,a);return d>=t.length?{value:void 0,done:!0}:(this[wa].index=d+1,{value:t[d],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function Ta(e){const p=Object.assign({__proto__:null},e[ca]),a=ua(e[ca],"Host");return void 0!==a&&(p[a]=p[a][0]),p}Object.defineProperty(fa,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const _a=Symbol("Response internals"),ba=d.STATUS_CODES;class Ea{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};pa.call(this,e,p);const a=p.status||200,d=new va(p.headers);if(null!=e&&!d.has("Content-Type")){const p=ia(e);p&&d.append("Content-Type",p)}this[_a]={url:p.url,status:a,statusText:p.statusText||ba[a],headers:d,counter:p.counter}}get url(){return this[_a].url||""}get status(){return this[_a].status}get ok(){return this[_a].status>=200&&this[_a].status<300}get redirected(){return this[_a].counter>0}get statusText(){return this[_a].statusText}get headers(){return this[_a].headers}clone(){return new Ea(ra(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}pa.mixIn(Ea.prototype),Object.defineProperties(Ea.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(Ea.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const ya=Symbol("Request internals"),Sa=m.URL||Dp.URL,Da=m.parse,Na=m.format;function Aa(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new Sa(e).toString()),Da(e)}const Oa="destroy"in o.Readable.prototype;function ka(e){return"object"==typeof e&&"object"==typeof e[ya]}class Ga{constructor(e){let p,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ka(e)?p=Aa(e.url):(p=e&&e.href?Aa(e.href):Aa(`${e}`),e={});let d=a.method||e.method||"GET";if(d=d.toUpperCase(),(null!=a.body||ka(e)&&null!==e.body)&&("GET"===d||"HEAD"===d))throw new TypeError("Request with GET/HEAD method cannot have body");let t=null!=a.body?a.body:ka(e)&&null!==e.body?ra(e):null;pa.call(this,t,{timeout:a.timeout||e.timeout||0,size:a.size||e.size||0});const r=new va(a.headers||e.headers||{});if(null!=t&&!r.has("Content-Type")){const e=ia(t);e&&r.append("Content-Type",e)}let i=ka(e)?e.signal:null;if("signal"in a&&(i=a.signal),null!=i&&!function(e){const p=e&&"object"==typeof e&&Object.getPrototypeOf(e);return!(!p||"AbortSignal"!==p.constructor.name)}(i))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[ya]={method:d,redirect:a.redirect||e.redirect||"follow",headers:r,parsedURL:p,signal:i},this.follow=void 0!==a.follow?a.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==a.compress?a.compress:void 0===e.compress||e.compress,this.counter=a.counter||e.counter||0,this.agent=a.agent||e.agent}get method(){return this[ya].method}get url(){return Na(this[ya].parsedURL)}get headers(){return this[ya].headers}get redirect(){return this[ya].redirect}get signal(){return this[ya].signal}clone(){return new Ga(this)}}function Pa(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}pa.mixIn(Ga.prototype),Object.defineProperty(Ga.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(Ga.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),Pa.prototype=Object.create(Error.prototype),Pa.prototype.constructor=Pa,Pa.prototype.name="AbortError";const Va=m.URL||Dp.URL,Ca=o.PassThrough;function Ra(e,p){if(!Ra.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return pa.Promise=Ra.Promise,new Ra.Promise((function(a,r){const i=new Ga(e,p),s=function(e){const p=e[ya].parsedURL,a=new va(e[ya].headers);if(a.has("Accept")||a.set("Accept","*/*"),!p.protocol||!p.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(p.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof o.Readable&&!Oa)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let d=null;if(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(d="0"),null!=e.body){const p=sa(e);"number"==typeof p&&(d=String(p))}d&&a.set("Content-Length",d),a.has("User-Agent")||a.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!a.has("Accept-Encoding")&&a.set("Accept-Encoding","gzip,deflate");let t=e.agent;return"function"==typeof t&&(t=t(p)),a.has("Connection")||t||a.set("Connection","close"),Object.assign({},p,{method:e.method,headers:Ta(a),agent:t})}(i),m=("https:"===s.protocol?t:d).request,l=i.signal;let u=null;const c=function(){let e=new Pa("The user aborted a request.");r(e),i.body&&i.body instanceof o.Readable&&i.body.destroy(e),u&&u.body&&u.body.emit("error",e)};if(l&&l.aborted)return void c();const v=function(){c(),g()},h=m(s);let w;function g(){h.abort(),l&&l.removeEventListener("abort",v),clearTimeout(w)}l&&l.addEventListener("abort",v),i.timeout&&h.once("socket",(function(e){w=setTimeout((function(){r(new Zp(`network timeout at: ${i.url}`,"request-timeout")),g()}),i.timeout)})),h.on("error",(function(e){r(new Zp(`request to ${i.url} failed, reason: ${e.message}`,"system",e)),g()})),h.on("response",(function(e){clearTimeout(w);const p=function(e){const p=new va;for(const a of Object.keys(e))if(!oa.test(a))if(Array.isArray(e[a]))for(const d of e[a])ma.test(d)||(void 0===p[ca][a]?p[ca][a]=[d]:p[ca][a].push(d));else ma.test(e[a])||(p[ca][a]=[e[a]]);return p}(e.headers);if(Ra.isRedirect(e.statusCode)){const d=p.get("Location");let t=null;try{t=null===d?null:new Va(d,i.url).toString()}catch(e){if("manual"!==i.redirect)return r(new Zp(`uri requested responds with an invalid redirect URL: ${d}`,"invalid-redirect")),void g()}switch(i.redirect){case"error":return r(new Zp(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),void g();case"manual":if(null!==t)try{p.set("Location",t)}catch(e){r(e)}break;case"follow":if(null===t)break;if(i.counter>=i.follow)return r(new Zp(`maximum redirect reached at: ${i.url}`,"max-redirect")),void g();const d={headers:new va(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:i.body,signal:i.signal,timeout:i.timeout,size:i.size};if(!function(e,p){const a=new Va(p).hostname,d=new Va(e).hostname;return a===d||"."===a[a.length-d.length-1]&&a.endsWith(d)}(i.url,t))for(const e of["authorization","www-authenticate","cookie","cookie2"])d.headers.delete(e);return 303!==e.statusCode&&i.body&&null===sa(i)?(r(new Zp("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void g()):(303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==i.method)||(d.method="GET",d.body=void 0,d.headers.delete("content-length")),a(Ra(new Ga(t,d))),void g())}}e.once("end",(function(){l&&l.removeEventListener("abort",v)}));let d=e.pipe(new Ca);const t={url:i.url,status:e.statusCode,statusText:e.statusMessage,headers:p,size:i.size,timeout:i.timeout,counter:i.counter},s=p.get("Content-Encoding");if(!i.compress||"HEAD"===i.method||null===s||204===e.statusCode||304===e.statusCode)return u=new Ea(d,t),void a(u);const o={flush:n.Z_SYNC_FLUSH,finishFlush:n.Z_SYNC_FLUSH};if("gzip"==s||"x-gzip"==s)return d=d.pipe(n.createGunzip(o)),u=new Ea(d,t),void a(u);if("deflate"!=s&&"x-deflate"!=s){if("br"==s&&"function"==typeof n.createBrotliDecompress)return d=d.pipe(n.createBrotliDecompress()),u=new Ea(d,t),void a(u);u=new Ea(d,t),a(u)}else{e.pipe(new Ca).once("data",(function(e){d=8==(15&e[0])?d.pipe(n.createInflate()):d.pipe(n.createInflateRaw()),u=new Ea(d,t),a(u)}))}})),function(e,p){const a=p.body;null===a?e.end():ta(a)?a.stream().pipe(e):Buffer.isBuffer(a)?(e.write(a),e.end()):a.pipe(e)}(h,i)}))}Ra.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},Ra.Promise=global.Promise;class Ua extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}}var Fa={exports:{}},ja=function e(p,a){if(p&&a)return e(p)(a);if("function"!=typeof p)throw new TypeError("need wrapper function");return Object.keys(p).forEach((function(e){d[e]=p[e]})),d;function d(){for(var e=new Array(arguments.length),a=0;aconsole.warn(e))),Ia=Fa.exports((e=>console.warn(e)));let Ha=class extends Error{constructor(e,p,a){let d;super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=p,"headers"in a&&void 0!==a.headers&&(d=a.headers),"response"in a&&(this.response=a.response,d=a.response.headers);const t=Object.assign({},a.request);a.request.headers.authorization&&(t.headers=Object.assign({},a.request.headers,{authorization:a.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),t.url=t.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=t,Object.defineProperty(this,"code",{get:()=>(La(new Ua("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),p)}),Object.defineProperty(this,"headers",{get:()=>(Ia(new Ua("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")),d||{})})}};function $a(e){const p=e.request&&e.request.log?e.request.log:console;(mp(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let a,d,t={};return(e.request&&e.request.fetch||Ra)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then((async r=>{d=r.url,a=r.status;for(const e of r.headers)t[e[0]]=e[1];if("deprecation"in t){const a=t.link&&t.link.match(/<([^>]+)>; rel="deprecation"/),d=a&&a.pop();p.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${t.sunset}${d?`. See ${d}`:""}`)}if(204!==a&&205!==a){if("HEAD"===e.method){if(a<400)return;throw new Ha(r.statusText,a,{response:{url:d,status:a,headers:t,data:void 0},request:e})}if(304===a)throw new Ha("Not modified",a,{response:{url:d,status:a,headers:t,data:await Ma(r)},request:e});if(a>=400){const p=await Ma(r),i=new Ha(function(e){if("string"==typeof e)return e;if("message"in e)return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}`:e.message;return`Unknown error: ${JSON.stringify(e)}`}(p),a,{response:{url:d,status:a,headers:t,data:p},request:e});throw i}return Ma(r)}})).then((e=>({status:a,url:d,headers:t,data:e}))).catch((p=>{if(p instanceof Ha)throw p;throw new Ha(p.message,500,{request:e})}))}async function Ma(e){const p=e.headers.get("content-type");return/application\/json/.test(p)?e.json():!p||/^text\/|charset=utf-8$/.test(p)?e.text():function(e){return e.arrayBuffer()}(e)}const za=function e(p,a){const d=p.defaults(a);return Object.assign((function(p,a){const t=d.merge(p,a);if(!t.request||!t.request.hook)return $a(d.parse(t));const r=(e,p)=>$a(d.parse(d.merge(e,p)));return Object.assign(r,{endpoint:d,defaults:e.bind(null,d)}),t.request.hook(r,t)}),{endpoint:d,defaults:e.bind(null,d)})}(Sp,{headers:{"user-agent":`octokit-request.js/5.6.3 ${Je()}`}}),Wa=Fa.exports((e=>console.warn(e)));class Ja extends Error{constructor(e,p,a){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=p,Object.defineProperty(this,"code",{get:()=>(Wa(new Ua("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),p)}),this.headers=a.headers||{};const d=Object.assign({},a.request);a.request.headers.authorization&&(d.headers=Object.assign({},a.request.headers,{authorization:a.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),d.url=d.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=d}}function Ka(e){(mp(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let p,a,d={};return(e.request&&e.request.fetch||Ra)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then((t=>{a=t.url,p=t.status;for(const e of t.headers)d[e[0]]=e[1];if(204===p||205===p)return;if("HEAD"===e.method){if(p<400)return;throw new Ja(t.statusText,p,{headers:d,request:e})}if(304===p)throw new Ja("Not modified",p,{headers:d,request:e});if(p>=400)return t.text().then((a=>{const t=new Ja(a,p,{headers:d,request:e});try{let e=JSON.parse(t.message);Object.assign(t,e);let p=e.errors;t.message=t.message+": "+p.map(JSON.stringify).join(", ")}catch(e){}throw t}));const r=t.headers.get("content-type");return/application\/json/.test(r)?t.json():!r||/^text\/|charset=utf-8$/.test(r)?t.text():function(e){return e.arrayBuffer()}(t)})).then((e=>({status:p,url:a,headers:d,data:e}))).catch((p=>{if(p instanceof Ja)throw p;throw new Ja(p.message,500,{headers:d,request:e})}))}const Ya=function e(p,a){const d=p.defaults(a);return Object.assign((function(p,a){const t=d.merge(p,a);if(!t.request||!t.request.hook)return Ka(d.parse(t));const r=(e,p)=>Ka(d.parse(d.merge(e,p)));return Object.assign(r,{endpoint:d,defaults:e.bind(null,d)}),t.request.hook(r,t)}),{endpoint:d,defaults:e.bind(null,d)})}(Sp,{headers:{"user-agent":`octokit-request.js/5.4.12 ${Je()}`}});class Za extends Error{constructor(e,p){super(p.data.errors[0].message),Object.assign(this,p.data),Object.assign(this,{headers:p.headers}),this.name="GraphqlError",this.request=e,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const Xa=["method","baseUrl","url","headers","request","query","mediaType"],Qa=/\/api\/v3\/?$/;function ed(e,p){const a=e.defaults(p);return Object.assign(((e,p)=>function(e,p,a){if("string"==typeof p&&a&&"query"in a)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));const d="string"==typeof p?Object.assign({query:p},a):p,t=Object.keys(d).reduce(((e,p)=>Xa.includes(p)?(e[p]=d[p],e):(e.variables||(e.variables={}),e.variables[p]=d[p],e)),{}),r=d.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Qa.test(r)&&(t.url=r.replace(Qa,"/api/graphql")),e(t).then((e=>{if(e.data.errors){const p={};for(const a of Object.keys(e.headers))p[a]=e.headers[a];throw new Za(t,{headers:p,data:e.data})}return e.data.data}))}(a,e,p)),{defaults:ed.bind(null,a),endpoint:Ya.endpoint})}async function pd(e){const p=3===e.split(/\./).length?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:p}}async function ad(e,p,a,d){const t=p.endpoint.merge(a,d);return t.headers.authorization=function(e){return 3===e.split(/\./).length?`bearer ${e}`:`token ${e}`}(e),p(t)}ed(Ya,{headers:{"user-agent":`octokit-graphql.js/4.5.8 ${Je()}`},method:"POST",url:"/graphql"});const dd=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if("string"!=typeof e)throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(pd.bind(null,e),{hook:ad.bind(null,e)})};class td{constructor(e={}){const p=new sp,a={baseUrl:za.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:p.bind(null,"request")}),mediaType:{previews:[],format:""}};var d;if(a.headers["user-agent"]=[e.userAgent,`octokit-core.js/3.6.0 ${Je()}`].filter(Boolean).join(" "),e.baseUrl&&(a.baseUrl=e.baseUrl),e.previews&&(a.mediaType.previews=e.previews),e.timeZone&&(a.headers["time-zone"]=e.timeZone),this.request=za.defaults(a),this.graphql=(d=this.request,ed(d,{method:"POST",url:"/graphql"})).defaults(a),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),this.hook=p,e.authStrategy){const{authStrategy:a,...d}=e,t=a(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:d},e.auth));p.wrap("request",t.hook),this.auth=t}else if(e.auth){const a=dd(e.auth);p.wrap("request",a.hook),this.auth=a}else this.auth=async()=>({type:"unauthenticated"});this.constructor.plugins.forEach((p=>{Object.assign(this,p(this,e))}))}static defaults(e){return class extends(this){constructor(...p){const a=p[0]||{};super("function"!=typeof e?Object.assign({},e,a,a.userAgent&&e.userAgent?{userAgent:`${a.userAgent} ${e.userAgent}`}:null):e(a))}}}static plugin(...e){var p;const a=this.plugins;return(p=class extends(this){}).plugins=a.concat(e.filter((e=>!a.includes(e)))),p}}td.VERSION="3.6.0",td.plugins=[];var rd=c(Object.freeze({__proto__:null,Octokit:td}));const id={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};function sd(e,p,a,d,t){const r=e.request.defaults(d);return Object.assign((function(...d){let i=r.endpoint.merge(...d);if(t.mapToData)return i=Object.assign({},i,{data:i[t.mapToData],[t.mapToData]:void 0}),r(i);if(t.renamed){const[d,r]=t.renamed;e.log.warn(`octokit.${p}.${a}() has been renamed to octokit.${d}.${r}()`)}if(t.deprecated&&e.log.warn(t.deprecated),t.renamedParameters){const i=r.endpoint.merge(...d);for(const[d,r]of Object.entries(t.renamedParameters))d in i&&(e.log.warn(`"${d}" parameter is deprecated for "octokit.${p}.${a}()". Use "${r}" instead`),r in i||(i[r]=i[d]),delete i[d]);return r(i)}return r(...d)}),r)}function od(e){const p=function(e,p){const a={};for(const[d,t]of Object.entries(p))for(const[p,r]of Object.entries(t)){const[t,i,s]=r,[o,m]=t.split(/ /),l=Object.assign({method:o,url:m},i);a[d]||(a[d]={});const n=a[d];n[p]=s?sd(e,d,p,l,s):e.request.defaults(l)}return a}(e,id);return{...p,rest:p}}od.VERSION="4.15.1";var md=c(Object.freeze({__proto__:null,restEndpointMethods:od}));function ld(e,p,a){const d="function"==typeof p?p.endpoint(a):e.request.endpoint(p,a),t="function"==typeof p?p:e.request,r=d.method,i=d.headers;let s=d.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!s)return{done:!0};try{const e=function(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data)||"url"in e.data)return e;const p=e.data.incomplete_results,a=e.data.repository_selection,d=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;const t=Object.keys(e.data)[0],r=e.data[t];return e.data=r,void 0!==p&&(e.data.incomplete_results=p),void 0!==a&&(e.data.repository_selection=a),e.data.total_count=d,e}(await t({method:r,url:s,headers:i}));return s=((e.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:e}}catch(e){if(409!==e.status)throw e;return s="",{value:{status:200,headers:{},data:[]}}}}})}}function nd(e,p,a,d){return"function"==typeof a&&(d=a,a=void 0),ud(e,[],ld(e,p,a)[Symbol.asyncIterator](),d)}function ud(e,p,a,d){return a.next().then((t=>{if(t.done)return p;let r=!1;return p=p.concat(d?d(t.value,(function(){r=!0})):t.value.data),r?p:ud(e,p,a,d)}))}const cd=Object.assign(nd,{iterator:ld}),vd=["GET /app/hook/deliveries","GET /app/installations","GET /applications/grants","GET /authorizations","GET /enterprises/{enterprise}/actions/permissions/organizations","GET /enterprises/{enterprise}/actions/runner-groups","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners","GET /enterprises/{enterprise}/actions/runners","GET /enterprises/{enterprise}/audit-log","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /enterprises/{enterprise}/settings/billing/advanced-security","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runner-groups","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/audit-log","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/credential-authorizations","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/external-groups","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/projects","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/settings/billing/advanced-security","GET /orgs/{org}/team-sync/groups","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/git/matching-refs/{ref}","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function hd(e){return{paginate:Object.assign(nd.bind(null,e),{iterator:ld.bind(null,e)})}}hd.VERSION="2.21.3";var wd=c(Object.freeze({__proto__:null,composePaginateRest:cd,isPaginatingEndpoint:function(e){return"string"==typeof e&&vd.includes(e)},paginateRest:hd,paginatingEndpoints:vd})),gd=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),fd=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),Td=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&gd(p,e,a);return fd(p,e),p};Object.defineProperty(Be,"__esModule",{value:!0}),Be.getOctokitOptions=Be.GitHub=Be.context=void 0;const _d=Td(Fe),bd=Td(qe),Ed=rd,yd=md,Sd=wd;Be.context=new _d.Context;const Dd=bd.getApiBaseUrl(),Nd={baseUrl:Dd,request:{agent:bd.getProxyAgent(Dd)}};Be.GitHub=Ed.Octokit.plugin(yd.restEndpointMethods,Sd.paginateRest).defaults(Nd),Be.getOctokitOptions=function(e,p){const a=Object.assign({},p||{}),d=bd.getAuthString(e,a);return d&&(a.auth=d),a};var Ad=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),Od=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),kd=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&Ad(p,e,a);return Od(p,e),p};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.getOctokit=Ue.context=void 0;const Gd=kd(Fe),Pd=Be;Ue.context=new Gd.Context,Ue.getOctokit=function(e,p){return new Pd.GitHub(Pd.getOctokitOptions(e,p))};var Vd={exports:{}},Cd=e,Rd=p,Ud=Cd.exists||Rd.exists,Fd=function(e,p){var a,d=[];["end_of_record"].concat(e.split("\n")).forEach((function(e){var p,t,r=(e=e.trim()).split(":"),i=[r.shift(),r.join(":")];switch(i[0].toUpperCase()){case"TN":a.title=i[1].trim();break;case"SF":a.file=i.slice(1).join(":").trim();break;case"FNF":a.functions.found=Number(i[1].trim());break;case"FNH":a.functions.hit=Number(i[1].trim());break;case"LF":a.lines.found=Number(i[1].trim());break;case"LH":a.lines.hit=Number(i[1].trim());break;case"DA":p=i[1].split(","),a.lines.details.push({line:Number(p[0]),hit:Number(p[1])});break;case"FN":t=i[1].split(","),a.functions.details.push({name:t[1],line:Number(t[0])});break;case"FNDA":t=i[1].split(","),a.functions.details.some((function(e,p){if(e.name===t[1]&&void 0===e.hit)return a.functions.details[p].hit=Number(t[0]),!0}));break;case"BRDA":t=i[1].split(","),a.branches.details.push({line:Number(t[0]),block:Number(t[1]),branch:Number(t[2]),taken:"-"===t[3]?0:Number(t[3])});break;case"BRF":a.branches.found=Number(i[1]);break;case"BRH":a.branches.hit=Number(i[1])}e.indexOf("end_of_record")>-1&&(d.push(a),a={lines:{found:0,hit:0,details:[]},functions:{hit:0,found:0,details:[]},branches:{hit:0,found:0,details:[]}})})),d.shift(),d.length?p(null,d):p("Failed to parse string")};Vd.exports=function(e,p){Ud(e,(function(a){if(!a)return Fd(e,p);Cd.readFile(e,"utf8",(function(e,a){Fd(a,p)}))}))},Vd.exports.source=Fd;const jd=e=>new Promise(((p,a)=>{Vd.exports(e,((e,d)=>{e?a(e):p(d)}))})),xd=e=>{let p=0,a=0;for(const d of e)p+=d.lines.hit,a+=d.lines.found;return p/a*100},Bd=e=>(...p)=>{const a="object"==typeof p[0]?Object.keys(p[0]).map((e=>` ${e}='${p[0][e]}'`)).join(""):"",d="string"==typeof p[0]?p:p.slice(1);return`<${e}${a}>${d.join("")}`},qd=Bd("details"),Ld=Bd("summary"),Id=Bd("tr"),Hd=Bd("td"),$d=Bd("th"),Md=Bd("b"),zd=Bd("table"),Wd=Bd("tbody"),Jd=Bd("a"),Kd=(...e)=>e.join(""),Yd=e=>{if(!e)return"N/A";const p=0===e.found?100:e.hit/e.found*100,a=p.toFixed(2).replace(/\.0*$/u,"");return(100===p?Kd:Md)(`${a}%`)},Zd=(e,p,a)=>Id(Hd(((e,p,a)=>{const d=e.file.replace(a.prefix,""),t=`https://github.com/${a.repository}/blob/${a.commit}/${d}`,r=d.split("/"),i=r[r.length-1];return Kd(p?"   ":"",Jd({href:t},i))})(e,p,a)),Hd(Yd(e.branches)),Hd(Yd(e.functions)),Hd(Yd(e.lines)),Hd(((e,p)=>[...(e.branches?e.branches.details:[]).filter((e=>0===e.taken)).map((e=>e.line)),...(e.lines?e.lines.details:[]).filter((e=>0===e.hit)).map((e=>e.line))].sort().map((a=>{const d=e.file.replace(p.prefix,""),t=`https://github.com/${p.repository}/blob/${p.commit}/${d}#L${a}`;return Jd({href:t},a)})).join(", "))(e,a))),Xd=e=>""===e?"":Id(Hd({colspan:5},Md(e))),Qd=(e,p)=>{const a=Id($d("File"),$d("Branches"),$d("Funcs"),$d("Lines"),$d("Uncovered Lines")),d={};for(const a of e){const e=a.file.replace(p.prefix,"").split("/").slice(0,-1).join("/");d[e]=d[e]||[],d[e].push(a)}const t=Object.keys(d).sort().reduce(((e,a)=>[...e,Xd(a),...d[a].map((e=>Zd(e,""!==a,p)))]),[]);return zd(Wd(a,...t))},et=e=>e.toFixed(2)<0?"❌":"✅",pt=e=>p=>0===e.filter((e=>e.lines.found===p.lines.found&&e.lines.hit===p.lines.hit)).length,at=(e,p,a)=>((e,p,a)=>{const{appName:d,base:t}=a,r=p?xd(p):0,i=(p?xd(e):0)-r,s=i>0?"+":"";let o="";i<0?o="▾":i>0&&(o="▴");const m=p?$d(et(i)," ",o," ",s,i.toFixed(2),"%"):"";let l=e;if(p){const a=e.filter(pt(p));l=p.filter(pt(e)).concat(a)}const n=`Coverage after merging into ${Md(t)}

`,u=Wd(d?Id($d(d),$d(xd(e).toFixed(2),"%"),m):Id($d(xd(e).toFixed(2),"%"),m));return Kd(n,zd(u),"\n\n",qd(Ld("Coverage Report"),Qd(l,a)))})(e,p,a),dt=(e,p,a)=>((e,p,a)=>{const{base:d}=a,t=e.map((e=>{const d=p.find((p=>p.packageName===e.packageName)),t=d?xd(d.lcov):0,r=(d?xd(e.lcov):0)-t,i=r>0?"+":"";let s="";r<0?s="▾":r>0&&(s="▴");const o=d?$d(et(r)," ",s," ",i,r.toFixed(2),"%"):"";let m=e.lcov;if(d){const p=e.lcov.filter(pt(d));m=d.filter(pt(e.lcov)).concat(p)}return`${zd(Wd(Id($d(e.packageName),$d(xd(e.lcov).toFixed(2),"%"),o)))} \n\n ${qd(Ld("Coverage Report"),Qd(m,a))}
`})),r=`Coverage after merging into ${Md(d)}

`;return Kd(r,t.join(""))})(e,p,a),tt=(e,p)=>p+e,rt=async({client:e,context:p,prNumber:a,body:d,hiddenHeader:t})=>{const r=await(async({client:e,context:p,prNumber:a,hiddenHeader:d})=>{const{data:t}=await e.issues.listComments({...p.repo,issue_number:a});return t.filter((({body:e})=>e.startsWith(d)))})({client:e,context:p,prNumber:a,hiddenHeader:t}),i=r.pop();return await(({client:e,context:p,comments:a})=>Promise.all(a.map((({id:a})=>e.issues.deleteComment({...p.repo,comment_id:a})))))({client:e,context:p,comments:r}),i?(({client:e,context:p,body:a,commentId:d},t)=>e.issues.updateComment({...p.repo,comment_id:d,body:tt(a,t)}))({client:e,context:p,body:d,commentId:i.id},t):(({client:e,context:p,prNumber:a,body:d},t)=>e.issues.createComment({...p.repo,issue_number:a,body:tt(d,t)}))({client:e,context:p,prNumber:a,body:d},t)},it=(a,d)=>{let t=d||[];return e.readdirSync(a).forEach((d=>{t=e.statSync(p.join(a,d)).isDirectory()?it(p.join(a,d),t):t.filter((e=>e.path.includes("lcov.info"))).concat({name:a.split("/")[1],path:p.join(a,d)})})),t},st=(a,d)=>{let t=d||[];return e.readdirSync(a).forEach((d=>{t=e.statSync(p.join(a,d)).isDirectory()?st(p.join(a,d),t):t.filter((e=>e.path.includes("lcov-base"))).concat({name:a.split("/")[1],path:p.join(a,d)})})),t};(async()=>{const{context:p={}}=Ue||{},a=Re.getInput("github-token"),d=Re.getInput("lcov-file")||"./coverage/lcov.info",t=Re.getInput("lcov-base"),r=Re.getInput("app-name"),i=Re.getInput("monorepo-base-path"),s=!i&&await e.promises.readFile(d,"utf-8").catch((e=>console.error(e)));if(!i&&!s)return void console.log(`No coverage report found at '${d}', exiting...`);const o=t&&await e.promises.readFile(t,"utf-8").catch((e=>console.error(e)));i||!t||o||console.log(`No coverage report found at '${t}', ignoring...`);const m=i?it(i):[],l=i?st(i):[],n=[],u=[];for(const p of m)if(p.path.includes(".info")){const a=await e.promises.readFile(p.path,"utf8"),d=await jd(a);n.push({packageName:p.name,lcov:d})}for(const p of l)if(p.path.includes(".info")){const a=await e.promises.readFile(p.path,"utf8"),d=await jd(a);u.push({packageName:p.name,lcov:d})}const c={repository:p.payload.repository.full_name,commit:p.payload.pull_request.head.sha,prefix:`${process.env.GITHUB_WORKSPACE}/`,head:p.payload.pull_request.head.ref,base:p.payload.pull_request.base.ref,appName:r},v=!i&&await jd(s),h=o&&await jd(o),w=Ue.getOctokit(a);await rt({client:w,context:p,prNumber:p.payload.pull_request.number,body:n.length?dt(n,u,c):at(v,h,c),hiddenHeader:r?`\x3c!-- ${r}-code-coverage-assistant --\x3e`:"\x3c!-- monorepo-code-coverage-assistant --\x3e"})})().catch((e=>{console.log(e),Re.setFailed(e.message)})); + */function op(e){return"[object Object]"===Object.prototype.toString.call(e)}function mp(e){var p,a;return!1!==op(e)&&(void 0===(p=e.constructor)||!1!==op(a=p.prototype)&&!1!==a.hasOwnProperty("isPrototypeOf"))}function np(e,p){const a=Object.assign({},e);return Object.keys(p).forEach((d=>{mp(p[d])?d in e?a[d]=np(e[d],p[d]):Object.assign(a,{[d]:p[d]}):Object.assign(a,{[d]:p[d]})})),a}function lp(e){for(const p in e)void 0===e[p]&&delete e[p];return e}function up(e,p,a){if("string"==typeof p){let[e,d]=p.split(" ");a=Object.assign(d?{method:e,url:d}:{url:e},a)}else a=Object.assign({},p);var d;a.headers=(d=a.headers)?Object.keys(d).reduce(((e,p)=>(e[p.toLowerCase()]=d[p],e)),{}):{},lp(a),lp(a.headers);const t=np(e||{},a);return e&&e.mediaType.previews.length&&(t.mediaType.previews=e.mediaType.previews.filter((e=>!t.mediaType.previews.includes(e))).concat(t.mediaType.previews)),t.mediaType.previews=t.mediaType.previews.map((e=>e.replace(/-preview/,""))),t}const cp=/\{[^}]+\}/g;function vp(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function hp(e,p){return Object.keys(e).filter((e=>!p.includes(e))).reduce(((p,a)=>(p[a]=e[a],p)),{})}function wp(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){return/%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")),e})).join("")}function gp(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function fp(e,p,a){return p="+"===e||"#"===e?wp(p):gp(p),a?gp(a)+"="+p:p}function Tp(e){return null!=e}function _p(e){return";"===e||"&"===e||"?"===e}function bp(e,p){var a=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,d,t){if(d){let e="";const t=[];if(-1!==a.indexOf(d.charAt(0))&&(e=d.charAt(0),d=d.substr(1)),d.split(/,/g).forEach((function(a){var d=/([^:\*]*)(?::(\d+)|(\*))?/.exec(a);t.push(function(e,p,a,d){var t=e[a],r=[];if(Tp(t)&&""!==t)if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)t=t.toString(),d&&"*"!==d&&(t=t.substring(0,parseInt(d,10))),r.push(fp(p,t,_p(p)?a:""));else if("*"===d)Array.isArray(t)?t.filter(Tp).forEach((function(e){r.push(fp(p,e,_p(p)?a:""))})):Object.keys(t).forEach((function(e){Tp(t[e])&&r.push(fp(p,t[e],e))}));else{const e=[];Array.isArray(t)?t.filter(Tp).forEach((function(a){e.push(fp(p,a))})):Object.keys(t).forEach((function(a){Tp(t[a])&&(e.push(gp(a)),e.push(fp(p,t[a].toString())))})),_p(p)?r.push(gp(a)+"="+e.join(",")):0!==e.length&&r.push(e.join(","))}else";"===p?Tp(t)&&r.push(gp(a)):""!==t||"&"!==p&&"?"!==p?""===t&&r.push(""):r.push(gp(a)+"=");return r}(p,e,d[1],d[2]||d[3]))})),e&&"+"!==e){var r=",";return"?"===e?r="&":"#"!==e&&(r=e),(0!==t.length?e:"")+t.join(r)}return t.join(",")}return wp(t)}))}function Ep(e){let p,a=e.method.toUpperCase(),d=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),t=Object.assign({},e.headers),r=hp(e,["method","baseUrl","url","headers","request","mediaType"]);const i=function(e){const p=e.match(cp);return p?p.map(vp).reduce(((e,p)=>e.concat(p)),[]):[]}(d);var s;d=(s=d,{expand:bp.bind(null,s)}).expand(r),/^http/.test(d)||(d=e.baseUrl+d);const o=hp(r,Object.keys(e).filter((e=>i.includes(e))).concat("baseUrl"));if(!/application\/octet-stream/i.test(t.accept)&&(e.mediaType.format&&(t.accept=t.accept.split(/,/).map((p=>p.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")),e.mediaType.previews.length)){const p=t.accept.match(/[\w-]+(?=-preview)/g)||[];t.accept=p.concat(e.mediaType.previews).map((p=>`application/vnd.github.${p}-preview${e.mediaType.format?`.${e.mediaType.format}`:"+json"}`)).join(",")}return["GET","HEAD"].includes(a)?d=function(e,p){const a=/\?/.test(e)?"&":"?",d=Object.keys(p);return 0===d.length?e:e+a+d.map((e=>"q"===e?"q="+p.q.split("+").map(encodeURIComponent).join("+"):`${e}=${encodeURIComponent(p[e])}`)).join("&")}(d,o):"data"in o?p=o.data:Object.keys(o).length?p=o:t["content-length"]=0,t["content-type"]||void 0===p||(t["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(a)&&void 0===p&&(p=""),Object.assign({method:a,url:d,headers:t},void 0!==p?{body:p}:null,e.request?{request:e.request}:null)}function yp(e,p,a){return Ep(up(e,p,a))}const Sp=function e(p,a){const d=up(p,a),t=yp.bind(null,d);return Object.assign(t,{DEFAULTS:d,defaults:e.bind(null,d),merge:up.bind(null,d),parse:Ep})}(null,{method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":`octokit-endpoint.js/6.0.10 ${Je()}`},mediaType:{format:"",previews:[]}});var Dp={},Np={exports:{}},Ap={},Op=Ap;function kp(e){return e<0?-1:1}function Gp(e,p){p.unsigned||--e;const a=p.unsigned?0:-Math.pow(2,e),d=Math.pow(2,e)-1,t=p.moduloBitLength?Math.pow(2,p.moduloBitLength):Math.pow(2,e),r=p.moduloBitLength?Math.pow(2,p.moduloBitLength-1):Math.pow(2,e-1);return function(e,i){i||(i={});let s=+e;if(i.enforceRange){if(!Number.isFinite(s))throw new TypeError("Argument is not a finite number");if(s=kp(s)*Math.floor(Math.abs(s)),sd)throw new TypeError("Argument is not in byte range");return s}if(!isNaN(s)&&i.clamp)return s=function(e){return e%1==.5&&0==(1&e)?Math.floor(e):Math.round(e)}(s),sd&&(s=d),s;if(!Number.isFinite(s)||0===s)return 0;if(s=kp(s)*Math.floor(Math.abs(s)),s%=t,!p.unsigned&&s>=r)return s-t;if(p.unsigned)if(s<0)s+=t;else if(-0===s)return 0;return s}}Ap.void=function(){},Ap.boolean=function(e){return!!e},Ap.byte=Gp(8,{unsigned:!1}),Ap.octet=Gp(8,{unsigned:!0}),Ap.short=Gp(16,{unsigned:!1}),Ap["unsigned short"]=Gp(16,{unsigned:!0}),Ap.long=Gp(32,{unsigned:!1}),Ap["unsigned long"]=Gp(32,{unsigned:!0}),Ap["long long"]=Gp(32,{unsigned:!1,moduloBitLength:64}),Ap["unsigned long long"]=Gp(32,{unsigned:!0,moduloBitLength:64}),Ap.double=function(e){const p=+e;if(!Number.isFinite(p))throw new TypeError("Argument is not a finite floating-point value");return p},Ap["unrestricted double"]=function(e){const p=+e;if(isNaN(p))throw new TypeError("Argument is NaN");return p},Ap.float=Ap.double,Ap["unrestricted float"]=Ap["unrestricted double"],Ap.DOMString=function(e,p){return p||(p={}),p.treatNullAsEmptyString&&null===e?"":String(e)},Ap.ByteString=function(e,p){const a=String(e);let d;for(let e=0;void 0!==(d=a.codePointAt(e));++e)if(d>255)throw new TypeError("Argument is not a valid bytestring");return a},Ap.USVString=function(e){const p=String(e),a=p.length,d=[];for(let e=0;e57343)d.push(String.fromCodePoint(t));else if(56320<=t&&t<=57343)d.push(String.fromCodePoint(65533));else if(e===a-1)d.push(String.fromCodePoint(65533));else{const a=p.charCodeAt(e+1);if(56320<=a&&a<=57343){const p=1023&t,r=1023&a;d.push(String.fromCodePoint(65536+1024*p+r)),++e}else d.push(String.fromCodePoint(65533))}}return d.join("")},Ap.Date=function(e,p){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},Ap.RegExp=function(e,p){return e instanceof RegExp||(e=new RegExp(e)),e};var Pp,Vp={exports:{}};(Pp=Vp).exports.mixin=function(e,p){const a=Object.getOwnPropertyNames(p);for(let d=0;d=e)return t;t[0][0]>e?a=d-1:p=d+1}return null}var qp=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function $p(e){return e.replace(qp,"_").length}var Ip=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function Hp(e,p){"xn--"===e.substr(0,4)&&(e=Fp.toUnicode(e));var a=!1;(Bp(e)!==e||"-"===e[3]&&"-"===e[4]||"-"===e[0]||"-"===e[e.length-1]||-1!==e.indexOf(".")||0===e.search(Ip))&&(a=!0);for(var d=$p(e),t=0;t253||0===i.length)&&(t.error=!0);for(var s=0;s63||0===r.length){t.error=!0;break}}return t.error?null:r.join(".")},Up.toUnicode=function(e,p){var a=Mp(e,p,jp.NONTRANSITIONAL);return{domain:a.string,error:a.error}},Up.PROCESSING_OPTIONS=jp,function(e){const p=n,a=Up,d={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},t=Symbol("failure");function r(e){return p.ucs2.decode(e).length}function i(e,p){const a=e[p];return isNaN(a)?void 0:String.fromCodePoint(a)}function s(e){return e>=48&&e<=57}function o(e){return e>=65&&e<=90||e>=97&&e<=122}function m(e){return s(e)||e>=65&&e<=70||e>=97&&e<=102}function l(e){return"."===e||"%2e"===e.toLowerCase()}function u(e){return 2===e.length&&o(e.codePointAt(0))&&(":"===e[1]||"|"===e[1])}function c(e){return void 0!==d[e]}function v(e){return c(e.scheme)}function h(e){let p=e.toString(16).toUpperCase();return 1===p.length&&(p="0"+p),"%"+p}function w(e){return e<=31||e>126}const g=new Set([32,34,35,60,62,63,96,123,125]);function f(e){return w(e)||g.has(e)}const T=new Set([47,58,59,61,64,91,92,93,94,124]);function _(e){return f(e)||T.has(e)}function b(e,p){const a=String.fromCodePoint(e);return p(e)?function(e){const p=new Buffer(e);let a="";for(let e=0;e=2&&"0"===e.charAt(0)&&"x"===e.charAt(1).toLowerCase()?(e=e.substring(2),p=16):e.length>=2&&"0"===e.charAt(0)&&(e=e.substring(1),p=8),""===e)return 0;return(10===p?/[^0-9]/:16===p?/[^0-9A-Fa-f]/:/[^0-7]/).test(e)?t:parseInt(e,p)}function y(e,d){if("["===e[0])return"]"!==e[e.length-1]?t:function(e){const a=[0,0,0,0,0,0,0,0];let d=0,r=null,o=0;if(58===(e=p.ucs2.decode(e))[o]){if(58!==e[o+1])return t;o+=2,++d,r=d}for(;o6)return t;let p=0;for(;void 0!==e[o];){let r=null;if(p>0){if(!(46===e[o]&&p<4))return t;++o}if(!s(e[o]))return t;for(;s(e[o]);){const p=parseInt(i(e,o));if(null===r)r=p;else{if(0===r)return t;r=10*r+p}if(r>255)return t;++o}a[d]=256*a[d]+r,++p,2!==p&&4!==p||++d}if(4!==p)return t;break}if(58===e[o]){if(++o,void 0===e[o])return t}else if(void 0!==e[o])return t;a[d]=p,++d}if(null!==r){let e=d-r;for(d=7;0!==d&&e>0;){const p=a[r+e-1];a[r+e-1]=a[d],a[d]=p,--d,--e}}else if(null===r&&8!==d)return t;return a}(e.substring(1,e.length-1));if(!d)return function(e){if(a=e,-1!==a.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/))return t;var a;let d="";const r=p.ucs2.decode(e);for(let e=0;e1&&p.pop(),p.length>4)return e;const a=[];for(const d of p){if(""===d)return e;const p=E(d);if(p===t)return e;a.push(p)}for(let e=0;e255)return t;if(a[a.length-1]>=Math.pow(256,5-a.length))return t;let d=a.pop(),r=0;for(const e of a)d+=e*Math.pow(256,3-r),++r;return d}(o);return"number"==typeof n||n===t?n:o}function S(e){return"number"==typeof e?function(e){let p="",a=e;for(let e=1;e<=4;++e)p=String(a%256)+p,4!==e&&(p="."+p),a=Math.floor(a/256);return p}(e):e instanceof Array?"["+function(e){let p="";const a=function(e){let p=null,a=1,d=null,t=0;for(let r=0;ra&&(p=d,a=t),d=null,t=0):(null===d&&(d=r),++t);return t>a&&(p=d,a=t),{idx:p,len:a}}(e),d=a.idx;let t=!1;for(let a=0;a<=7;++a)t&&0===e[a]||(t&&(t=!1),d!==a?(p+=e[a].toString(16),7!==a&&(p+=":")):(p+=0===a?"::":":",t=!0));return p}(e)+"]":e}function D(e){const p=e.path;var a;0!==p.length&&("file"===e.scheme&&1===p.length&&(a=p[0],/^[A-Za-z]:$/.test(a))||p.pop())}function N(e){return""!==e.username||""!==e.password}function A(e,a,d,r,i){if(this.pointer=0,this.input=e,this.base=a||null,this.encodingOverride=d||"utf-8",this.stateOverride=i,this.url=r,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};const e=function(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}(this.input);e!==this.input&&(this.parseError=!0),this.input=e}const s=function(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}(this.input);for(s!==this.input&&(this.parseError=!0),this.input=s,this.state=i||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=p.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer],p=isNaN(e)?void 0:String.fromCodePoint(e),a=this["parse "+this.state](e,p);if(!a)break;if(a===t){this.failure=!0;break}}}A.prototype["parse scheme start"]=function(e,p){if(o(e))this.buffer+=p.toLowerCase(),this.state="scheme";else{if(this.stateOverride)return this.parseError=!0,t;this.state="no scheme",--this.pointer}return!0},A.prototype["parse scheme"]=function(e,p){if(function(e){return o(e)||s(e)}(e)||43===e||45===e||46===e)this.buffer+=p.toLowerCase();else if(58===e){if(this.stateOverride){if(v(this.url)&&!c(this.buffer))return!1;if(!v(this.url)&&c(this.buffer))return!1;if((N(this.url)||null!==this.url.port)&&"file"===this.buffer)return!1;if("file"===this.url.scheme&&(""===this.url.host||null===this.url.host))return!1}if(this.url.scheme=this.buffer,this.buffer="",this.stateOverride)return!1;"file"===this.url.scheme?(47===this.input[this.pointer+1]&&47===this.input[this.pointer+2]||(this.parseError=!0),this.state="file"):v(this.url)&&null!==this.base&&this.base.scheme===this.url.scheme?this.state="special relative or authority":v(this.url)?this.state="special authority slashes":47===this.input[this.pointer+1]?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else{if(this.stateOverride)return this.parseError=!0,t;this.buffer="",this.state="no scheme",this.pointer=-1}return!0},A.prototype["parse no scheme"]=function(e){return null===this.base||this.base.cannotBeABaseURL&&35!==e?t:(this.base.cannotBeABaseURL&&35===e?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):"file"===this.base.scheme?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)},A.prototype["parse special relative or authority"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0},A.prototype["parse path or authority"]=function(e){return 47===e?this.state="authority":(this.state="path",--this.pointer),!0},A.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):47===e?this.state="relative slash":63===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):v(this.url)&&92===e?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0},A.prototype["parse relative slash"]=function(e){return!v(this.url)||47!==e&&92!==e?47===e?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer):(92===e&&(this.parseError=!0),this.state="special authority ignore slashes"),!0},A.prototype["parse special authority slashes"]=function(e){return 47===e&&47===this.input[this.pointer+1]?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0},A.prototype["parse special authority ignore slashes"]=function(e){return 47!==e&&92!==e?(this.state="authority",--this.pointer):this.parseError=!0,!0},A.prototype["parse authority"]=function(e,p){if(64===e){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;const e=r(this.buffer);for(let p=0;pMath.pow(2,16)-1)return this.parseError=!0,t;this.url.port=e===(a=this.url.scheme,d[a])?null:e,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}var a;return!0};const O=new Set([47,92,63,35]);A.prototype["parse file"]=function(e){var p,a;return this.url.scheme="file",47===e||92===e?(92===e&&(this.parseError=!0),this.state="file slash"):null!==this.base&&"file"===this.base.scheme?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):63===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):35===e?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1==0||(p=e,a=this.input[this.pointer+1],!o(p)||58!==a&&124!==a)||this.input.length-this.pointer-1>=2&&!O.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),D(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0},A.prototype["parse file slash"]=function(e){var p;return 47===e||92===e?(92===e&&(this.parseError=!0),this.state="file host"):(null!==this.base&&"file"===this.base.scheme&&(2===(p=this.base.path[0]).length&&o(p.codePointAt(0))&&":"===p[1]?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0},A.prototype["parse file host"]=function(e,p){if(isNaN(e)||47===e||92===e||63===e||35===e)if(--this.pointer,!this.stateOverride&&u(this.buffer))this.parseError=!0,this.state="path";else if(""===this.buffer){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let e=y(this.buffer,v(this.url));if(e===t)return t;if("localhost"===e&&(e=""),this.url.host=e,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=p;return!0},A.prototype["parse path start"]=function(e){return v(this.url)?(92===e&&(this.parseError=!0),this.state="path",47!==e&&92!==e&&--this.pointer):this.stateOverride||63!==e?this.stateOverride||35!==e?void 0!==e&&(this.state="path",47!==e&&--this.pointer):(this.url.fragment="",this.state="fragment"):(this.url.query="",this.state="query"),!0},A.prototype["parse path"]=function(e){if(isNaN(e)||47===e||v(this.url)&&92===e||!this.stateOverride&&(63===e||35===e)){if(v(this.url)&&92===e&&(this.parseError=!0),".."===(p=(p=this.buffer).toLowerCase())||"%2e."===p||".%2e"===p||"%2e%2e"===p?(D(this.url),47===e||v(this.url)&&92===e||this.url.path.push("")):!l(this.buffer)||47===e||v(this.url)&&92===e?l(this.buffer)||("file"===this.url.scheme&&0===this.url.path.length&&u(this.buffer)&&(""!==this.url.host&&null!==this.url.host&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)):this.url.path.push(""),this.buffer="","file"===this.url.scheme&&(void 0===e||63===e||35===e))for(;this.url.path.length>1&&""===this.url.path[0];)this.parseError=!0,this.url.path.shift();63===e&&(this.url.query="",this.state="query"),35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=b(e,f);var p;return!0},A.prototype["parse cannot-be-a-base-URL path"]=function(e){return 63===e?(this.url.query="",this.state="query"):35===e?(this.url.fragment="",this.state="fragment"):(isNaN(e)||37===e||(this.parseError=!0),37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+b(e,w))),!0},A.prototype["parse query"]=function(e,p){if(isNaN(e)||!this.stateOverride&&35===e){v(this.url)&&"ws"!==this.url.scheme&&"wss"!==this.url.scheme||(this.encodingOverride="utf-8");const p=new Buffer(this.buffer);for(let e=0;e126||34===p[e]||35===p[e]||60===p[e]||62===p[e]?this.url.query+=h(p[e]):this.url.query+=String.fromCodePoint(p[e]);this.buffer="",35===e&&(this.url.fragment="",this.state="fragment")}else 37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.buffer+=p;return!0},A.prototype["parse fragment"]=function(e){return isNaN(e)||(0===e?this.parseError=!0:(37!==e||m(this.input[this.pointer+1])&&m(this.input[this.pointer+2])||(this.parseError=!0),this.url.fragment+=b(e,w))),!0},e.exports.serializeURL=function(e,p){let a=e.scheme+":";if(null!==e.host?(a+="//",""===e.username&&""===e.password||(a+=e.username,""!==e.password&&(a+=":"+e.password),a+="@"),a+=S(e.host),null!==e.port&&(a+=":"+e.port)):null===e.host&&"file"===e.scheme&&(a+="//"),e.cannotBeABaseURL)a+=e.path[0];else for(const p of e.path)a+="/"+p;return null!==e.query&&(a+="?"+e.query),p||null===e.fragment||(a+="#"+e.fragment),a},e.exports.serializeURLOrigin=function(p){switch(p.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(p.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return function(e){let p=e.scheme+"://";return p+=S(e.host),null!==e.port&&(p+=":"+e.port),p}({scheme:p.scheme,host:p.host,port:p.port});case"file":return"file://";default:return"null"}},e.exports.basicURLParse=function(e,p){void 0===p&&(p={});const a=new A(e,p.baseURL,p.encodingOverride,p.url,p.stateOverride);return a.failure?"failure":a.url},e.exports.setTheUsername=function(e,a){e.username="";const d=p.ucs2.decode(a);for(let p=0;p!!e&&e[t]instanceof d.implementation,create(e,p){let a=Object.create(r.prototype);return this.setup(a,e,p),a},setup(e,p,r){r||(r={}),r.wrapper=e,e[t]=new d.implementation(p,r),e[t][a.wrapperSymbol]=e},interface:r,expose:{Window:{URL:r},Worker:{URL:r}}}}(Np),Dp.URL=Np.exports.interface,Dp.serializeURL=Rp.exports.serializeURL,Dp.serializeURLOrigin=Rp.exports.serializeURLOrigin,Dp.basicURLParse=Rp.exports.basicURLParse,Dp.setTheUsername=Rp.exports.setTheUsername,Dp.setThePassword=Rp.exports.setThePassword,Dp.serializeHost=Rp.exports.serializeHost,Dp.serializeInteger=Rp.exports.serializeInteger,Dp.parseURL=Rp.exports.parseURL;const Wp=o.Readable,Jp=Symbol("buffer"),Kp=Symbol("type");class Yp{constructor(){this[Kp]="";const e=arguments[0],p=arguments[1],a=[];let d=0;if(e){const p=e,t=Number(p.length);for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:{},d=a.size;let t=void 0===d?0:d;var r=a.timeout;let i=void 0===r?0:r;null==e?e=null:da(e)?e=Buffer.from(e.toString()):ta(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof o||(e=Buffer.from(String(e)))),this[Qp]={body:e,disturbed:!1,error:null},this.size=t,this.timeout=i,e instanceof o&&e.on("error",(function(e){const a="AbortError"===e.name?e:new Zp(`Invalid response body while trying to fetch ${p.url}: ${e.message}`,"system",e);p[Qp].error=a}))}function aa(){var e=this;if(this[Qp].disturbed)return pa.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[Qp].disturbed=!0,this[Qp].error)return pa.Promise.reject(this[Qp].error);let p=this.body;if(null===p)return pa.Promise.resolve(Buffer.alloc(0));if(ta(p)&&(p=p.stream()),Buffer.isBuffer(p))return pa.Promise.resolve(p);if(!(p instanceof o))return pa.Promise.resolve(Buffer.alloc(0));let a=[],d=0,t=!1;return new pa.Promise((function(r,i){let s;e.timeout&&(s=setTimeout((function(){t=!0,i(new Zp(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),p.on("error",(function(p){"AbortError"===p.name?(t=!0,i(p)):i(new Zp(`Invalid response body while trying to fetch ${e.url}: ${p.message}`,"system",p))})),p.on("data",(function(p){if(!t&&null!==p){if(e.size&&d+p.length>e.size)return t=!0,void i(new Zp(`content size at ${e.url} over limit: ${e.size}`,"max-size"));d+=p.length,a.push(p)}})),p.on("end",(function(){if(!t){clearTimeout(s);try{r(Buffer.concat(a,d))}catch(p){i(new Zp(`Could not create Buffer from response body for ${e.url}: ${p.message}`,"system",p))}}}))}))}function da(e){return"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&("URLSearchParams"===e.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(e)||"function"==typeof e.sort)}function ta(e){return"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function ra(e){let p,a,d=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return d instanceof o&&"function"!=typeof d.getBoundary&&(p=new ea,a=new ea,d.pipe(p),d.pipe(a),e[Qp].body=p,d=a),d}function ia(e){return null===e?null:"string"==typeof e?"text/plain;charset=UTF-8":da(e)?"application/x-www-form-urlencoded;charset=UTF-8":ta(e)?e.type||null:Buffer.isBuffer(e)||"[object ArrayBuffer]"===Object.prototype.toString.call(e)||ArrayBuffer.isView(e)?null:"function"==typeof e.getBoundary?`multipart/form-data;boundary=${e.getBoundary()}`:e instanceof o?null:"text/plain;charset=UTF-8"}function sa(e){const p=e.body;return null===p?0:ta(p)?p.size:Buffer.isBuffer(p)?p.length:p&&"function"==typeof p.getLengthSync&&(p._lengthRetrievers&&0==p._lengthRetrievers.length||p.hasKnownLength&&p.hasKnownLength())?p.getLengthSync():null}pa.prototype={get body(){return this[Qp].body},get bodyUsed(){return this[Qp].disturbed},arrayBuffer(){return aa.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return aa.call(this).then((function(p){return Object.assign(new Yp([],{type:e.toLowerCase()}),{[Jp]:p})}))},json(){var e=this;return aa.call(this).then((function(p){try{return JSON.parse(p.toString())}catch(p){return pa.Promise.reject(new Zp(`invalid json response body at ${e.url} reason: ${p.message}`,"invalid-json"))}}))},text(){return aa.call(this).then((function(e){return e.toString()}))},buffer(){return aa.call(this)},textConverted(){var e=this;return aa.call(this).then((function(p){return function(e,p){if("function"!=typeof Xp)throw new Error("The package `encoding` must be installed to use the textConverted() function");const a=p.get("content-type");let d,t,r="utf-8";a&&(d=/charset=([^;]*)/i.exec(a));t=e.slice(0,1024).toString(),!d&&t&&(d=/0&&void 0!==arguments[0]?arguments[0]:void 0;if(this[ca]=Object.create(null),e instanceof va){const p=e.raw(),a=Object.keys(p);for(const e of a)for(const a of p[e])this.append(e,a)}else if(null==e);else{if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");{const p=e[Symbol.iterator];if(null!=p){if("function"!=typeof p)throw new TypeError("Header pairs must be iterable");const a=[];for(const p of e){if("object"!=typeof p||"function"!=typeof p[Symbol.iterator])throw new TypeError("Each header pair must be iterable");a.push(Array.from(p))}for(const e of a){if(2!==e.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(e[0],e[1])}}else for(const p of Object.keys(e)){const a=e[p];this.append(p,a)}}}}get(e){na(e=`${e}`);const p=ua(this[ca],e);return void 0===p?null:this[ca][p].join(", ")}forEach(e){let p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,a=ha(this),d=0;for(;d1&&void 0!==arguments[1]?arguments[1]:"key+value";const a=Object.keys(e[ca]).sort();return a.map("key"===p?function(e){return e.toLowerCase()}:"value"===p?function(p){return e[ca][p].join(", ")}:function(p){return[p.toLowerCase(),e[ca][p].join(", ")]})}va.prototype.entries=va.prototype[Symbol.iterator],Object.defineProperty(va.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(va.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});const wa=Symbol("internal");function ga(e,p){const a=Object.create(fa);return a[wa]={target:e,kind:p,index:0},a}const fa=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==fa)throw new TypeError("Value of `this` is not a HeadersIterator");var e=this[wa];const p=e.target,a=e.kind,d=e.index,t=ha(p,a);return d>=t.length?{value:void 0,done:!0}:(this[wa].index=d+1,{value:t[d],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));function Ta(e){const p=Object.assign({__proto__:null},e[ca]),a=ua(e[ca],"Host");return void 0!==a&&(p[a]=p[a][0]),p}Object.defineProperty(fa,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const _a=Symbol("Response internals"),ba=d.STATUS_CODES;class Ea{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};pa.call(this,e,p);const a=p.status||200,d=new va(p.headers);if(null!=e&&!d.has("Content-Type")){const p=ia(e);p&&d.append("Content-Type",p)}this[_a]={url:p.url,status:a,statusText:p.statusText||ba[a],headers:d,counter:p.counter}}get url(){return this[_a].url||""}get status(){return this[_a].status}get ok(){return this[_a].status>=200&&this[_a].status<300}get redirected(){return this[_a].counter>0}get statusText(){return this[_a].statusText}get headers(){return this[_a].headers}clone(){return new Ea(ra(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}pa.mixIn(Ea.prototype),Object.defineProperties(Ea.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(Ea.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});const ya=Symbol("Request internals"),Sa=m.URL||Dp.URL,Da=m.parse,Na=m.format;function Aa(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new Sa(e).toString()),Da(e)}const Oa="destroy"in o.Readable.prototype;function ka(e){return"object"==typeof e&&"object"==typeof e[ya]}class Ga{constructor(e){let p,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ka(e)?p=Aa(e.url):(p=e&&e.href?Aa(e.href):Aa(`${e}`),e={});let d=a.method||e.method||"GET";if(d=d.toUpperCase(),(null!=a.body||ka(e)&&null!==e.body)&&("GET"===d||"HEAD"===d))throw new TypeError("Request with GET/HEAD method cannot have body");let t=null!=a.body?a.body:ka(e)&&null!==e.body?ra(e):null;pa.call(this,t,{timeout:a.timeout||e.timeout||0,size:a.size||e.size||0});const r=new va(a.headers||e.headers||{});if(null!=t&&!r.has("Content-Type")){const e=ia(t);e&&r.append("Content-Type",e)}let i=ka(e)?e.signal:null;if("signal"in a&&(i=a.signal),null!=i&&!function(e){const p=e&&"object"==typeof e&&Object.getPrototypeOf(e);return!(!p||"AbortSignal"!==p.constructor.name)}(i))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[ya]={method:d,redirect:a.redirect||e.redirect||"follow",headers:r,parsedURL:p,signal:i},this.follow=void 0!==a.follow?a.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==a.compress?a.compress:void 0===e.compress||e.compress,this.counter=a.counter||e.counter||0,this.agent=a.agent||e.agent}get method(){return this[ya].method}get url(){return Na(this[ya].parsedURL)}get headers(){return this[ya].headers}get redirect(){return this[ya].redirect}get signal(){return this[ya].signal}clone(){return new Ga(this)}}function Pa(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}pa.mixIn(Ga.prototype),Object.defineProperty(Ga.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(Ga.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),Pa.prototype=Object.create(Error.prototype),Pa.prototype.constructor=Pa,Pa.prototype.name="AbortError";const Va=m.URL||Dp.URL,Ca=o.PassThrough;function Ra(e,p){if(!Ra.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return pa.Promise=Ra.Promise,new Ra.Promise((function(a,r){const i=new Ga(e,p),s=function(e){const p=e[ya].parsedURL,a=new va(e[ya].headers);if(a.has("Accept")||a.set("Accept","*/*"),!p.protocol||!p.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(p.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof o.Readable&&!Oa)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let d=null;if(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(d="0"),null!=e.body){const p=sa(e);"number"==typeof p&&(d=String(p))}d&&a.set("Content-Length",d),a.has("User-Agent")||a.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!a.has("Accept-Encoding")&&a.set("Accept-Encoding","gzip,deflate");let t=e.agent;return"function"==typeof t&&(t=t(p)),a.has("Connection")||t||a.set("Connection","close"),Object.assign({},p,{method:e.method,headers:Ta(a),agent:t})}(i),m=("https:"===s.protocol?t:d).request,n=i.signal;let u=null;const c=function(){let e=new Pa("The user aborted a request.");r(e),i.body&&i.body instanceof o.Readable&&i.body.destroy(e),u&&u.body&&u.body.emit("error",e)};if(n&&n.aborted)return void c();const v=function(){c(),g()},h=m(s);let w;function g(){h.abort(),n&&n.removeEventListener("abort",v),clearTimeout(w)}n&&n.addEventListener("abort",v),i.timeout&&h.once("socket",(function(e){w=setTimeout((function(){r(new Zp(`network timeout at: ${i.url}`,"request-timeout")),g()}),i.timeout)})),h.on("error",(function(e){r(new Zp(`request to ${i.url} failed, reason: ${e.message}`,"system",e)),g()})),h.on("response",(function(e){clearTimeout(w);const p=function(e){const p=new va;for(const a of Object.keys(e))if(!oa.test(a))if(Array.isArray(e[a]))for(const d of e[a])ma.test(d)||(void 0===p[ca][a]?p[ca][a]=[d]:p[ca][a].push(d));else ma.test(e[a])||(p[ca][a]=[e[a]]);return p}(e.headers);if(Ra.isRedirect(e.statusCode)){const d=p.get("Location");let t=null;try{t=null===d?null:new Va(d,i.url).toString()}catch(e){if("manual"!==i.redirect)return r(new Zp(`uri requested responds with an invalid redirect URL: ${d}`,"invalid-redirect")),void g()}switch(i.redirect){case"error":return r(new Zp(`uri requested responds with a redirect, redirect mode is set to error: ${i.url}`,"no-redirect")),void g();case"manual":if(null!==t)try{p.set("Location",t)}catch(e){r(e)}break;case"follow":if(null===t)break;if(i.counter>=i.follow)return r(new Zp(`maximum redirect reached at: ${i.url}`,"max-redirect")),void g();const d={headers:new va(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:i.body,signal:i.signal,timeout:i.timeout,size:i.size};if(!function(e,p){const a=new Va(p).hostname,d=new Va(e).hostname;return a===d||"."===a[a.length-d.length-1]&&a.endsWith(d)}(i.url,t))for(const e of["authorization","www-authenticate","cookie","cookie2"])d.headers.delete(e);return 303!==e.statusCode&&i.body&&null===sa(i)?(r(new Zp("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void g()):(303!==e.statusCode&&(301!==e.statusCode&&302!==e.statusCode||"POST"!==i.method)||(d.method="GET",d.body=void 0,d.headers.delete("content-length")),a(Ra(new Ga(t,d))),void g())}}e.once("end",(function(){n&&n.removeEventListener("abort",v)}));let d=e.pipe(new Ca);const t={url:i.url,status:e.statusCode,statusText:e.statusMessage,headers:p,size:i.size,timeout:i.timeout,counter:i.counter},s=p.get("Content-Encoding");if(!i.compress||"HEAD"===i.method||null===s||204===e.statusCode||304===e.statusCode)return u=new Ea(d,t),void a(u);const o={flush:l.Z_SYNC_FLUSH,finishFlush:l.Z_SYNC_FLUSH};if("gzip"==s||"x-gzip"==s)return d=d.pipe(l.createGunzip(o)),u=new Ea(d,t),void a(u);if("deflate"!=s&&"x-deflate"!=s){if("br"==s&&"function"==typeof l.createBrotliDecompress)return d=d.pipe(l.createBrotliDecompress()),u=new Ea(d,t),void a(u);u=new Ea(d,t),a(u)}else{e.pipe(new Ca).once("data",(function(e){d=8==(15&e[0])?d.pipe(l.createInflate()):d.pipe(l.createInflateRaw()),u=new Ea(d,t),a(u)}))}})),function(e,p){const a=p.body;null===a?e.end():ta(a)?a.stream().pipe(e):Buffer.isBuffer(a)?(e.write(a),e.end()):a.pipe(e)}(h,i)}))}Ra.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},Ra.Promise=global.Promise;class Ua extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}}var Fa={exports:{}},xa=function e(p,a){if(p&&a)return e(p)(a);if("function"!=typeof p)throw new TypeError("need wrapper function");return Object.keys(p).forEach((function(e){d[e]=p[e]})),d;function d(){for(var e=new Array(arguments.length),a=0;aconsole.warn(e))),$a=Fa.exports((e=>console.warn(e)));let Ia=class extends Error{constructor(e,p,a){let d;super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=p,"headers"in a&&void 0!==a.headers&&(d=a.headers),"response"in a&&(this.response=a.response,d=a.response.headers);const t=Object.assign({},a.request);a.request.headers.authorization&&(t.headers=Object.assign({},a.request.headers,{authorization:a.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),t.url=t.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=t,Object.defineProperty(this,"code",{get:()=>(qa(new Ua("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),p)}),Object.defineProperty(this,"headers",{get:()=>($a(new Ua("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")),d||{})})}};function Ha(e){const p=e.request&&e.request.log?e.request.log:console;(mp(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let a,d,t={};return(e.request&&e.request.fetch||Ra)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then((async r=>{d=r.url,a=r.status;for(const e of r.headers)t[e[0]]=e[1];if("deprecation"in t){const a=t.link&&t.link.match(/<([^>]+)>; rel="deprecation"/),d=a&&a.pop();p.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${t.sunset}${d?`. See ${d}`:""}`)}if(204!==a&&205!==a){if("HEAD"===e.method){if(a<400)return;throw new Ia(r.statusText,a,{response:{url:d,status:a,headers:t,data:void 0},request:e})}if(304===a)throw new Ia("Not modified",a,{response:{url:d,status:a,headers:t,data:await Ma(r)},request:e});if(a>=400){const p=await Ma(r),i=new Ia(function(e){if("string"==typeof e)return e;if("message"in e)return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}`:e.message;return`Unknown error: ${JSON.stringify(e)}`}(p),a,{response:{url:d,status:a,headers:t,data:p},request:e});throw i}return Ma(r)}})).then((e=>({status:a,url:d,headers:t,data:e}))).catch((p=>{if(p instanceof Ia)throw p;throw new Ia(p.message,500,{request:e})}))}async function Ma(e){const p=e.headers.get("content-type");return/application\/json/.test(p)?e.json():!p||/^text\/|charset=utf-8$/.test(p)?e.text():function(e){return e.arrayBuffer()}(e)}const za=function e(p,a){const d=p.defaults(a);return Object.assign((function(p,a){const t=d.merge(p,a);if(!t.request||!t.request.hook)return Ha(d.parse(t));const r=(e,p)=>Ha(d.parse(d.merge(e,p)));return Object.assign(r,{endpoint:d,defaults:e.bind(null,d)}),t.request.hook(r,t)}),{endpoint:d,defaults:e.bind(null,d)})}(Sp,{headers:{"user-agent":`octokit-request.js/5.6.3 ${Je()}`}}),Wa=Fa.exports((e=>console.warn(e)));class Ja extends Error{constructor(e,p,a){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=p,Object.defineProperty(this,"code",{get:()=>(Wa(new Ua("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),p)}),this.headers=a.headers||{};const d=Object.assign({},a.request);a.request.headers.authorization&&(d.headers=Object.assign({},a.request.headers,{authorization:a.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),d.url=d.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=d}}function Ka(e){(mp(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let p,a,d={};return(e.request&&e.request.fetch||Ra)(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then((t=>{a=t.url,p=t.status;for(const e of t.headers)d[e[0]]=e[1];if(204===p||205===p)return;if("HEAD"===e.method){if(p<400)return;throw new Ja(t.statusText,p,{headers:d,request:e})}if(304===p)throw new Ja("Not modified",p,{headers:d,request:e});if(p>=400)return t.text().then((a=>{const t=new Ja(a,p,{headers:d,request:e});try{let e=JSON.parse(t.message);Object.assign(t,e);let p=e.errors;t.message=t.message+": "+p.map(JSON.stringify).join(", ")}catch(e){}throw t}));const r=t.headers.get("content-type");return/application\/json/.test(r)?t.json():!r||/^text\/|charset=utf-8$/.test(r)?t.text():function(e){return e.arrayBuffer()}(t)})).then((e=>({status:p,url:a,headers:d,data:e}))).catch((p=>{if(p instanceof Ja)throw p;throw new Ja(p.message,500,{headers:d,request:e})}))}const Ya=function e(p,a){const d=p.defaults(a);return Object.assign((function(p,a){const t=d.merge(p,a);if(!t.request||!t.request.hook)return Ka(d.parse(t));const r=(e,p)=>Ka(d.parse(d.merge(e,p)));return Object.assign(r,{endpoint:d,defaults:e.bind(null,d)}),t.request.hook(r,t)}),{endpoint:d,defaults:e.bind(null,d)})}(Sp,{headers:{"user-agent":`octokit-request.js/5.4.12 ${Je()}`}});class Za extends Error{constructor(e,p){super(p.data.errors[0].message),Object.assign(this,p.data),Object.assign(this,{headers:p.headers}),this.name="GraphqlError",this.request=e,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const Xa=["method","baseUrl","url","headers","request","query","mediaType"],Qa=/\/api\/v3\/?$/;function ed(e,p){const a=e.defaults(p);return Object.assign(((e,p)=>function(e,p,a){if("string"==typeof p&&a&&"query"in a)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));const d="string"==typeof p?Object.assign({query:p},a):p,t=Object.keys(d).reduce(((e,p)=>Xa.includes(p)?(e[p]=d[p],e):(e.variables||(e.variables={}),e.variables[p]=d[p],e)),{}),r=d.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Qa.test(r)&&(t.url=r.replace(Qa,"/api/graphql")),e(t).then((e=>{if(e.data.errors){const p={};for(const a of Object.keys(e.headers))p[a]=e.headers[a];throw new Za(t,{headers:p,data:e.data})}return e.data.data}))}(a,e,p)),{defaults:ed.bind(null,a),endpoint:Ya.endpoint})}async function pd(e){const p=3===e.split(/\./).length?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:p}}async function ad(e,p,a,d){const t=p.endpoint.merge(a,d);return t.headers.authorization=function(e){return 3===e.split(/\./).length?`bearer ${e}`:`token ${e}`}(e),p(t)}ed(Ya,{headers:{"user-agent":`octokit-graphql.js/4.5.8 ${Je()}`},method:"POST",url:"/graphql"});const dd=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if("string"!=typeof e)throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(pd.bind(null,e),{hook:ad.bind(null,e)})};class td{constructor(e={}){const p=new sp,a={baseUrl:za.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:p.bind(null,"request")}),mediaType:{previews:[],format:""}};var d;if(a.headers["user-agent"]=[e.userAgent,`octokit-core.js/3.6.0 ${Je()}`].filter(Boolean).join(" "),e.baseUrl&&(a.baseUrl=e.baseUrl),e.previews&&(a.mediaType.previews=e.previews),e.timeZone&&(a.headers["time-zone"]=e.timeZone),this.request=za.defaults(a),this.graphql=(d=this.request,ed(d,{method:"POST",url:"/graphql"})).defaults(a),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),this.hook=p,e.authStrategy){const{authStrategy:a,...d}=e,t=a(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:d},e.auth));p.wrap("request",t.hook),this.auth=t}else if(e.auth){const a=dd(e.auth);p.wrap("request",a.hook),this.auth=a}else this.auth=async()=>({type:"unauthenticated"});this.constructor.plugins.forEach((p=>{Object.assign(this,p(this,e))}))}static defaults(e){return class extends(this){constructor(...p){const a=p[0]||{};super("function"!=typeof e?Object.assign({},e,a,a.userAgent&&e.userAgent?{userAgent:`${a.userAgent} ${e.userAgent}`}:null):e(a))}}}static plugin(...e){var p;const a=this.plugins;return(p=class extends(this){}).plugins=a.concat(e.filter((e=>!a.includes(e)))),p}}td.VERSION="3.6.0",td.plugins=[];var rd=c(Object.freeze({__proto__:null,Octokit:td}));const id={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};function sd(e,p,a,d,t){const r=e.request.defaults(d);return Object.assign((function(...d){let i=r.endpoint.merge(...d);if(t.mapToData)return i=Object.assign({},i,{data:i[t.mapToData],[t.mapToData]:void 0}),r(i);if(t.renamed){const[d,r]=t.renamed;e.log.warn(`octokit.${p}.${a}() has been renamed to octokit.${d}.${r}()`)}if(t.deprecated&&e.log.warn(t.deprecated),t.renamedParameters){const i=r.endpoint.merge(...d);for(const[d,r]of Object.entries(t.renamedParameters))d in i&&(e.log.warn(`"${d}" parameter is deprecated for "octokit.${p}.${a}()". Use "${r}" instead`),r in i||(i[r]=i[d]),delete i[d]);return r(i)}return r(...d)}),r)}function od(e){const p=function(e,p){const a={};for(const[d,t]of Object.entries(p))for(const[p,r]of Object.entries(t)){const[t,i,s]=r,[o,m]=t.split(/ /),n=Object.assign({method:o,url:m},i);a[d]||(a[d]={});const l=a[d];l[p]=s?sd(e,d,p,n,s):e.request.defaults(n)}return a}(e,id);return{...p,rest:p}}od.VERSION="4.15.1";var md=c(Object.freeze({__proto__:null,restEndpointMethods:od}));function nd(e,p,a){const d="function"==typeof p?p.endpoint(a):e.request.endpoint(p,a),t="function"==typeof p?p:e.request,r=d.method,i=d.headers;let s=d.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!s)return{done:!0};try{const e=function(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data)||"url"in e.data)return e;const p=e.data.incomplete_results,a=e.data.repository_selection,d=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;const t=Object.keys(e.data)[0],r=e.data[t];return e.data=r,void 0!==p&&(e.data.incomplete_results=p),void 0!==a&&(e.data.repository_selection=a),e.data.total_count=d,e}(await t({method:r,url:s,headers:i}));return s=((e.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:e}}catch(e){if(409!==e.status)throw e;return s="",{value:{status:200,headers:{},data:[]}}}}})}}function ld(e,p,a,d){return"function"==typeof a&&(d=a,a=void 0),ud(e,[],nd(e,p,a)[Symbol.asyncIterator](),d)}function ud(e,p,a,d){return a.next().then((t=>{if(t.done)return p;let r=!1;return p=p.concat(d?d(t.value,(function(){r=!0})):t.value.data),r?p:ud(e,p,a,d)}))}const cd=Object.assign(ld,{iterator:nd}),vd=["GET /app/hook/deliveries","GET /app/installations","GET /applications/grants","GET /authorizations","GET /enterprises/{enterprise}/actions/permissions/organizations","GET /enterprises/{enterprise}/actions/runner-groups","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners","GET /enterprises/{enterprise}/actions/runners","GET /enterprises/{enterprise}/audit-log","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /enterprises/{enterprise}/settings/billing/advanced-security","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runner-groups","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/audit-log","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/credential-authorizations","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/external-groups","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/projects","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/settings/billing/advanced-security","GET /orgs/{org}/team-sync/groups","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/git/matching-refs/{ref}","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function hd(e){return{paginate:Object.assign(ld.bind(null,e),{iterator:nd.bind(null,e)})}}hd.VERSION="2.21.3";var wd=c(Object.freeze({__proto__:null,composePaginateRest:cd,isPaginatingEndpoint:function(e){return"string"==typeof e&&vd.includes(e)},paginateRest:hd,paginatingEndpoints:vd})),gd=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),fd=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),Td=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&gd(p,e,a);return fd(p,e),p};Object.defineProperty(Be,"__esModule",{value:!0}),Be.getOctokitOptions=Be.GitHub=Be.context=void 0;const _d=Td(Fe),bd=Td(Le),Ed=rd,yd=md,Sd=wd;Be.context=new _d.Context;const Dd=bd.getApiBaseUrl(),Nd={baseUrl:Dd,request:{agent:bd.getProxyAgent(Dd)}};Be.GitHub=Ed.Octokit.plugin(yd.restEndpointMethods,Sd.paginateRest).defaults(Nd),Be.getOctokitOptions=function(e,p){const a=Object.assign({},p||{}),d=bd.getAuthString(e,a);return d&&(a.auth=d),a};var Ad=u&&u.__createBinding||(Object.create?function(e,p,a,d){void 0===d&&(d=a),Object.defineProperty(e,d,{enumerable:!0,get:function(){return p[a]}})}:function(e,p,a,d){void 0===d&&(d=a),e[d]=p[a]}),Od=u&&u.__setModuleDefault||(Object.create?function(e,p){Object.defineProperty(e,"default",{enumerable:!0,value:p})}:function(e,p){e.default=p}),kd=u&&u.__importStar||function(e){if(e&&e.__esModule)return e;var p={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&Ad(p,e,a);return Od(p,e),p};Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.getOctokit=Ue.context=void 0;const Gd=kd(Fe),Pd=Be;Ue.context=new Gd.Context,Ue.getOctokit=function(e,p){return new Pd.GitHub(Pd.getOctokitOptions(e,p))};var Vd={exports:{}},Cd=e,Rd=a,Ud=Cd.exists||Rd.exists,Fd=function(e,p){var a,d=[];["end_of_record"].concat(e.split("\n")).forEach((function(e){var p,t,r=(e=e.trim()).split(":"),i=[r.shift(),r.join(":")];switch(i[0].toUpperCase()){case"TN":a.title=i[1].trim();break;case"SF":a.file=i.slice(1).join(":").trim();break;case"FNF":a.functions.found=Number(i[1].trim());break;case"FNH":a.functions.hit=Number(i[1].trim());break;case"LF":a.lines.found=Number(i[1].trim());break;case"LH":a.lines.hit=Number(i[1].trim());break;case"DA":p=i[1].split(","),a.lines.details.push({line:Number(p[0]),hit:Number(p[1])});break;case"FN":t=i[1].split(","),a.functions.details.push({name:t[1],line:Number(t[0])});break;case"FNDA":t=i[1].split(","),a.functions.details.some((function(e,p){if(e.name===t[1]&&void 0===e.hit)return a.functions.details[p].hit=Number(t[0]),!0}));break;case"BRDA":t=i[1].split(","),a.branches.details.push({line:Number(t[0]),block:Number(t[1]),branch:Number(t[2]),taken:"-"===t[3]?0:Number(t[3])});break;case"BRF":a.branches.found=Number(i[1]);break;case"BRH":a.branches.hit=Number(i[1])}e.indexOf("end_of_record")>-1&&(d.push(a),a={lines:{found:0,hit:0,details:[]},functions:{hit:0,found:0,details:[]},branches:{hit:0,found:0,details:[]}})})),d.shift(),d.length?p(null,d):p("Failed to parse string")};Vd.exports=function(e,p){Ud(e,(function(a){if(!a)return Fd(e,p);Cd.readFile(e,"utf8",(function(e,a){Fd(a,p)}))}))},Vd.exports.source=Fd;const xd=e=>new Promise(((p,a)=>{Vd.exports(e,((e,d)=>{e?a(e):p(d)}))})),jd=e=>{let p=0,a=0;for(const d of e)p+=d.lines.hit,a+=d.lines.found;return 0===a?0:p/a*100},Bd=(p,d)=>{const t=[];for(const r of e.readdirSync(d)){const i=a.join(d,r);e.statSync(i).isDirectory()&&"node_modules"!==r?t.push(...Bd(p,i)):i.includes(p)&&t.push({dir:d,path:i})}return t},Ld=async p=>{const a=await e.promises.readFile(p,"utf-8").catch((e=>console.error(e)));return a?(console.log("readLcov read",p),xd(a)):(console.log(`No coverage report found at '${p}', ignoring...`),a)},qd=e=>(...p)=>{const a="object"==typeof p[0]?Object.keys(p[0]).map((e=>` ${e}='${p[0][e]}'`)).join(""):"",d="string"==typeof p[0]?p:p.slice(1);return`<${e}${a}>${d.join("")}`},$d=qd("details"),Id=qd("summary"),Hd=qd("tr"),Md=qd("td"),zd=qd("th"),Wd=qd("b"),Jd=qd("table"),Kd=qd("tbody"),Yd=qd("a"),Zd=qd("p"),Xd=(...e)=>e.join(""),Qd=e=>{if(!e)return"N/A";const p=0===e.found?100:e.hit/e.found*100,a=p.toFixed(2).replace(/\.0*$/u,"");return(100===p?Xd:Wd)(`${a}%`)},et=(e,p,a)=>Hd(Md(((e,p,a)=>{const d=e.file.replace(a.prefix,""),t=`https://github.com/${a.repository}/blob/${a.commit}/${d}`,r=d.split("/"),i=r[r.length-1];return Xd(p?"   ":"",Yd({href:t},i))})(e,p,a)),Md(Qd(e.branches)),Md(Qd(e.functions)),Md(Qd(e.lines)),Md(((e,p)=>[...(e.branches?e.branches.details:[]).filter((e=>0===e.taken)).map((e=>e.line)),...(e.lines?e.lines.details:[]).filter((e=>0===e.hit)).map((e=>e.line))].sort().map((a=>{const d=e.file.replace(p.prefix,""),t=`https://github.com/${p.repository}/blob/${p.commit}/${d}#L${a}`;return Yd({href:t},a)})).join(", "))(e,a))),pt=e=>""===e?"":Hd(Md({colspan:5},Wd(e))),at=(e,p)=>{const a=Hd(zd("File"),zd("Branches"),zd("Funcs"),zd("Lines"),zd("Uncovered Lines")),d={};for(const a of e){const e=a.file.replace(p.prefix,"").split("/").slice(0,-1).join("/");d[e]=d[e]||[],d[e].push(a)}const t=Object.keys(d).sort().reduce(((e,a)=>[...e,pt(a),...d[a].map((e=>et(e,""!==a,p)))]),[]);return Jd(Kd(a,...t))},dt=e=>p=>0===e.filter((e=>e.lines&&p.lines&&e.lines.found===p.lines.found&&e.lines.hit===p.lines.hit)).length,tt=(e,p,a,d)=>{const t=p?jd(p):0,r=(p?jd(e):0)-t,i=r>0?"+":"";let s=e;if(p){const a=e.filter(dt(p));s=p.filter(dt(e)).concat(a)}const o=zd(jd(e).toFixed(2),"%"),m=[];if(m.push(zd(a)),m.push(o),p){const e=(e=>e<0?"▾":e>0?"▴":"")(r);m.push(zd((e=>e.toFixed(2)<0?"❌":"✅")(r)," ",e," ",i,r.toFixed(2),"%"))}return[Jd(Kd(Hd(...m))),s.length>d.maxLines?Zd("Coverage Report too long to display"):$d(Id("Coverage Report"),at(s,d)),"
"].join("")},rt=(e,p,a,d)=>{const t=tt(e,p,a,d),{base:r}=d,i=`Coverage after merging into ${Wd(r)}

`;return Xd(i,t)},it=async({rootLcov:e,rootBaseLcov:p,lcovArray:a,lcovBaseArray:d,options:t,upsert:r})=>{if(!t.pullRequest)return;const i={maxLines:t.maxLines,prefix:t.prefix,repository:t.repository,commit:t.pullRequest.head.sha,head:t.pullRequest.head.ref,base:t.pullRequest.base.ref};if(a&&a.length>0)if(t.singleComment){const e=((e,p,a)=>{const d=e.map((e=>{const d=p&&p.find((p=>p.packageName===e.packageName));return tt(e.lcov,d&&d.lcov,e.packageName,a)})).join(""),{base:t}=a,r=`Coverage after merging into ${Wd(t)}

`;return Xd(r,d)})(a,d,i);await r("single-comment",e)}else for(const e of a){const p=d&&d.find((p=>p.packageName===e.packageName)),a=rt(e.lcov,p&&p.lcov,e.packageName,i);await r(`m-${e.packageName}`,a)}if(e){const a=rt(e,p,"root",i);await r("root-comment",a)}},st=({rootLcov:e,lcovArray:p,options:a,setFailed:d,info:t})=>{const r=a.minCoverage||100,i=(a.excluded||"").split(" ").map((e=>e.trim())).filter((e=>e.length>0)),s=[];if(p&&p.filter((e=>!i.some((p=>e.packageName===p)))).forEach((e=>s.push({minCoverage:r,...e}))),e&&!a.excludeRoot&&s.unshift({packageName:"root_package",lcov:e,minCoverage:r}),0===s.length)return;const{isValidBuild:o,coverage:m,name:n}=(e=>{let p=0;for(const a of e){const e=jd(a.lcov),d=e>=a.minCoverage;if(!d)return{isValidBuild:d,coverage:e,name:a.packageName};p+=e}return{isValidBuild:!0,coverage:p/e.length,name:"average"}})(s);o?t(`Coverage: ${m.toFixed(2)}% is greater than or equal to min_coverage ${r}.`):d(`${m.toFixed(2)}% for ${n} is less than min_coverage ${r}.`)};var ot,mt,nt=Object.defineProperty,lt=Object.getOwnPropertyDescriptor,ut=Object.getOwnPropertyNames,ct=Object.prototype.hasOwnProperty,vt=(ot=(e,p)=>{p.exports=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,43,50,90,70,120,80,30,50,50,70,90,40,50,40,50,70,70,70,70,70,70,70,70,70,70,50,50,90,90,90,60,110,75,75,77,85,70,63,85,83,46,50,76,61,93,82,87,66,87,76,75,68,81,75,110,75,68,75,50,50,50,90,70,70,66,69,57,69,66,39,69,70,30,38,65,30,110,70,67,69,69,47,57,43,70,65,90,65,65,58,70,50,70,90,0,61,110,110,110,110,110,110,110,110,110,110,110,110,110,55,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,55,110,39,43,70,70,70,70,50,70,70,110,60,71,90,0,110,70,60,90,60,60,70,71,70,40,70,60,60,71,110,110,110,60,75,75,75,75,75,75,110,77,70,70,70,70,46,46,46,46,85,82,87,87,87,87,87,90,87,81,81,81,81,68,67,68,66,66,66,66,66,66,110,57,66,66,66,66,30,30,30,30,67,70,67,67,67,67,67,90,67,70,70,70,70,65,69,65,75,66,75,66,75,66,77,57,77,57,77,57,77,57,85,71,85,69,70,66,70,66,70,66,70,66,70,66,85,69,85,69,85,69,85,69,83,70,83,70,46,30,46,30,46,30,46,30,46,30,96,68,50,38,76,65,65,61,30,61,30,61,33,61,50,62,31,82,70,82,70,82,70,80,82,70,87,67,87,67,87,67,120,110,76,47,76,47,76,47,75,57,75,57,75,57,75,57,68,43,68,43,68,43,81,70,81,70,81,69,81,70,81,70,81,69,110,90,68,65,68,75,58,75,58,75,58,33,69,77,64,69,75,62,76,76,59,83,96,64,69,65,60,83,58,59,70,79,72,100,43,43,73,64,42,65,120,81,68,86,89,67,120,98,74,69,70,59,56,65,58,41,74,41,70,83,73,86,78,68,74,67,63,61,61,56,57,70,70,52,50,67,29,48,50,32,140,140,130,94,90,61,110,110,99,76,61,32,32,85,68,76,68,76,68,81,70,76,68,81,70,61,76,61,76,61,100,94,88,69,79,69,72,64,85,68,85,68,61,56,28,140,140,130,85,69,110,61,82,70,75,66,110,110,87,67,72,60,76,61,63,58,60,61,30,27,32,32,76,63,85,68,68,37,70,45,71,61,76,68,75,57,68,43,58,55,81,68,81,100,85,68,67,63,76,61,60,61,85,68,85,68,85,68,85,68,69,57,63,100,63,28,100,100,75,81,56,62,68,55,55,62,62,81,95,75,75,62,61,25,96,69,87,44,86,69,61,69,69,69,56,61,70,70,61,66,86,51,51,71,64,45,70,69,65,59,65,68,68,68,42,41,45,56,53,33,72,100,100,100,69,70,69,68,89,86,84,45,45,47,45,45,45,45,61,61,56,47,48,53,59,41,41,72,73,68,57,85,57,53,63,77,56,59,49,49,49,53,85,58,65,67,69,53,64,51,70,50,49,110,110,130,88,78,96,110,74,77,68,64,71,71,40,40,26,27,27,35,35,51,36,26,52,35,22,28,29,29,31,31,38,39,40,40,70,70,20,70,31,31,20,40,31,31,42,42,31,31,50,50,50,50,70,70,70,70,70,70,23,38,41,20,35,40,31,43,43,43,43,43,42,42,37,46,48,24,24,26,26,32,31,47,47,41,27,31,31,31,31,42,42,50,0,0,53,0,51,68,52,39,49,0,46,51,53,38,47,0,52,52,39,39,39,11,46,47,44,44,26,17,41,48,48,48,48,25,25,0,49,46,21,40,41,38,40,57,53,53,52,52,52,51,68,68,62,62,68,62,79,41,0,40,57,48,41,68,0,0,52,42,53,38,40,51,47,45,52,52,52,57,44,0,45,41,52,48,45,45,56,41,20,48,51,47,83,52,51,51,51,51,51,45,44,36,45,44,44,45,44,51,40,41,45,45,46,37,65,51,32,32,79,64,79,79,68,56,56,56,50,66,79,79,79,79,70,70,75,50,83,96,59,79,97,79,83,100,30,75,75,62,77,70,75,83,87,46,76,75,93,82,71,87,83,66,79,74,68,68,90,75,96,90,46,68,69,56,70,30,69,69,68,65,67,56,50,70,69,30,65,65,70,65,55,67,70,69,56,69,55,69,87,65,90,89,30,69,67,69,89,62,57,64,59,59,70,85,86,61,85,68,73,59,59,56,60,56,73,88,98,92,74,61,74,55,73,73,67,66,81,61,51,45,61,67,56,33,86,58,58,63,67,76,95,80,78,81,81,81,70,70,87,62,77,75,46,46,50,120,120,90,76,83,68,83,75,75,75,62,82,70,110,68,83,83,76,81,93,83,87,83,66,77,68,68,90,75,84,78,110,110,86,100,75,77,110,78,66,68,65,52,68,66,88,58,70,70,65,68,77,70,67,70,69,59,55,65,92,65,71,67,96,98,70,87,63,60,92,66,66,66,70,52,60,57,30,30,38,100,100,70,65,70,65,70,97,85,69,60,99,82,66,59,97,83,94,81,120,110,57,53,76,77,75,63,69,55,69,55,130,110,75,62,96,84,97,85,71,59,69,0,0,0,0,0,0,0,78,63,69,60,70,62,62,52,62,52,67,55,110,88,65,56,76,65,76,65,72,57,90,76,83,70,110,78,110,96,82,66,72,58,66,53,68,65,68,65,75,65,99,74,75,60,78,67,78,70,85,65,85,65,30,100,84,69,60,78,64,78,62,78,63,75,60,96,82,30,72,60,72,60,100,93,63,58,83,66,76,58,100,84,65,56,64,64,78,63,78,63,76,63,87,67,75,63,74,59,69,52,69,52,69,52,75,60,61,46,95,85,65,45,69,55,69,55,68,62,90,95,87,71,59,55,110,89,110,91,68,57,78,70,74,59,78,64,84,76,91,75,110,81,85,68,100,87,75,69,110,88,120,100,76,66,74,68,49,44,98,89,62,58,73,65,79,84,63,81,81,68,71,63,60,80,75,64,57,80,72,66,65,77,79,68,80,61,81,70,59,66,73,67,81,68,81,61,54,63,69,75,69,64,77,79,79,44,37,33,42,29,38,0,79,82,56,67,70,55,58,52,56,63,63,55,30,84,58,54,55,51,57,58,58,30,56,48,58,45,81,48,67,58,58,83,70,56,43,81,65,55,69,59,79,39,44,79,79,79,79,88,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,3.3,15,0,0,0,38,0,28,0,0,28,0,5,44,12,79,79,79,79,79,79,79,79,71,62,47,55,78,35,37,78,71,35,58,63,59,77,76,34,45,73,66,58,63,53,63,73,56,79,76,79,79,79,79,79,68,68,66,31,53,79,79,79,79,79,79,79,79,79,79,79,97,190,93,81,290,120,71,71,86,58,58,53,32,49,93,58,0,0,.9,0,0,0,0,0,0,0,9,32,0,79,27,39,89,35,32,32,43,32,70,32,70,39,70,70,64,64,64,45,45,45,45,100,100,120,120,66,66,64,64,77,77,70,70,70,22,86,60,60,52,45,59,39,43,70,70,0,.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,58,58,58,58,58,58,58,58,58,58,58,58,57,70,60,0,32,32,32,0,47,58,54,70,70,70,70,70,70,70,70,70,64,64,64,64,64,64,64,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,100,100,100,120,120,66,64,86,86,86,86,86,86,60,60,77,77,77,60,60,60,77,77,77,77,77,77,52,52,52,52,59,59,59,59,59,57,64,39,49,49,49,43,43,43,43,43,43,43,43,70,79,70,43,70,70,64,64,35,39,7,4.1,.45,.099,0,0,0,95,61,0,0,0,0,24,0,25,38,0,0,70,0,0,0,0,45,45,51,51,58,58,58,58,58,58,58,58,100,120,64,51,48,57,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,70,70,70,70,70,70,70,64,64,45,45,45,100,64,64,64,86,86,77,77,77,45,45,59,59,59,52,45,45,100,64,64,100,45,64,32,32,70,70,70,43,43,64,64,64,100,100,60,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,96,96,74,84,100,74,70,54,83,83,61,47,64,26,52,120,92,52,37,73,88,79,96,96,96,38,83,100,74,66,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,58,40,41,34,33,79,79,79,79,79,79,56,62,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,0,0,0,73,73,73,100,80,80,110,58,58,52,74,91,79,60,60,60,60,110,110,110,110,85,87,61,70,68,71,75,82,85,77,55,63,60,58,83,61,71,58,70,56,56,62,87,62,64,64,67,44,45,78,81,81,60,79,63,75,56,73,100,73,54,100,100,100,73,73,73,73,73,73,73,73,100,100,100,100,73,100,100,130,0,0,73,73,73,73,73,85,87,61,82,60,58,87,67,91,79,73,73,52,82,51,53,54,54,56,59,58,72,53,52,55,34,80,80,110,110,80,80,57,82,67,61,80,50,61,62,62,73,120,120,79,98,130,54,72,73,75,83,68,79,79,78,83,79,79,66,78,76,72,70,69,76,58,65,88,85,100,60,60,73,60,67,75,74,60,67,69,79,72,83,60,79,64,62,60,79,81,79,79,79,77,62,72,54,79,79,73,51,100,100,100,73,73,73,73,79,79,100,100,79,79,130,130,73,57,79,79,79,79,79,79,79,79,100,79,79,79,79,73,60,79,62,83,68,73,73,79,79,65,58,53,80,55,67,70,62,76,69,61,60,46,66,44,75,70,30,62,58,70,30,79,79,79,79,79,34,23,32,79,89,110,97,98,78,78,79,79,79,79,73,89,79,79,78,89,76,76,90,92,75,76,79,76,79,73,73,79,75,76,78,75,76,76,76,79,79,76,75,77,75,75,91,73,79,78,78,79,76,75,79,75,73,79,79,12,79,26,23,50,64,64,79,79,79,79,62,62,79,79,67,58,19,79,79,79,19,79,79,79,79,79,79,79,76,90,76,75,79,75,79,79,79,79,79,79,79,93,68,69,70,77,76,70,70,80,77,36,26,73,78,170,46,79,79,79,79,79,79,79,79,79,79,79,89,89,28,79,94,120,71,78,82,95,88,83,94,79,94,94,120,79,120,120,63,84,79,70,65,74,86,92,92,76,70,79,63,76,98,71,74,63,71,73,79,74,63,85,89,67,74,56,79,74,90,79,74,79,74,81,65,79,79,89,56,120,100,120,89,89,89,89,89,79,89,89,120,79,120,120,89,79,79,120,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,95,83,89,89,79,79,74,46,56,62,72,74,57,85,59,75,47,100,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,28,46,48,79,84,100,88,90,91,90,90,62,79,79,70,91,79,79,75,95,87,84,84,84,94,83,70,87,84,79,84,85,84,84,79,84,74,85,73,79,79,75,94,85,88,75,82,87,79,87,87,79,85,80,75,75,85,79,79,4.7,50,98,78,98,78,78,78,78,79,79,140,140,79,79,150,150,78,79,79,79,79,79,79,79,79,78,98,79,79,79,79,84,84,79,90,89,64,78,78,79,79,67,56,56,91,69,59,70,62,55,61,81,63,19,44,70,57,81,91,79,79,79,79,79,79,79,79,79,79,62,76,79,98,120,100,69,100,120,79,79,79,78,78,86,79,83,83,170,78,79,79,79,91,71,79,83,79,100,85,79,79,79,140,75,79,79,79,74,100,64,79,79,79,73,76,59,70,88,93,73,80,100,100,110,130,79,79,79,79,120,80,64,110,120,79,79,79,140,130,160,79,190,180,230,62,79,79,92,79,79,79,79,79,79,150,79,79,79,79,79,79,79,79,79,79,79,79,36,55,59,69,69,65,66,81,91,70,95,90,78,76,85,91,80,160,81,130,140,81,110,79,79,79,79,79,73,110,140,110,79,97,94,85,110,99,130,160,110,79,84,84,89,79,83,83,85,57,99,66,120,85,88,88,84,140,110,93,68,90,90,92,90,90,90,90,84,79,84,84,90,90,120,140,68,97,85,71,97,84,61,84,84,120,79,79,79,70,110,73,73,110,140,120,150,79,73,73,73,79,73,73,110,73,79,79,79,79,79,79,79,73,73,79,88,84,90,79,79,79,79,79,200,150,73,73,79,79,64,62,77,55,65,71,50,57,65,50,79,79,79,79,79,79,79,79,58,28,52,82,74,74,73,86,42,61,120,93,79,90,85,92,120,120,140,120,110,79,81,81,84,79,81,81,84,68,94,70,87,81,81,95,81,140,120,85,73,82,82,85,81,88,88,88,80,79,81,81,86,86,120,140,73,90,90,83,79,83,72,81,83,87,79,79,61,52,120,71,110,100,130,89,130,79,74,110,120,79,140,180,110,110,79,79,79,79,79,79,79,97,89,79,79,79,79,79,79,79,90,79,150,150,69,80,79,79,72,67,85,83,83,92,85,82,99,67,79,59,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,42,31,79,140,150,99,180,70,150,88,110,79,120,120,180,79,70,120,150,97,88,83,130,110,91,130,88,160,140,57,64,120,120,140,96,81,61,92,92,100,78,110,130,64,64,97,67,63,84,72,63,88,94,110,120,120,81,79,79,42,110,89,88,96,96,100,100,79,130,120,180,79,170,160,200,66,19,79,79,79,79,79,79,79,79,150,79,79,79,79,79,79,79,79,88,120,70,81,79,79,64,86,88,110,68,97,130,48,88,100,92,96,130,76,82,110,79,79,79,120,150,100,68,110,94,110,79,79,68,48,79,91,130,130,130,92,90,95,150,150,200,110,170,100,110,160,100,100,170,79,79,79,120,110,100,94,110,120,100,90,88,180,170,150,100,95,100,110,100,140,130,110,96,83,110,100,79,100,88,100,110,120,110,100,99,88,79,99,79,79,97,110,88,100,120,110,100,79,79,79,86,79,79,79,79,120,130,130,89,89,89,79,89,79,140,160,160,220,190,190,220,150,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,200,63,160,79,79,79,79,79,79,79,79,79,79,79,21,66,63,63,70,69,70,52,58,67,64,65,90,90,73,73,59,76,94,90,69,69,66,69,61,68,72,72,65,65,74,74,73,69,67,53,66,64,73,56,69,71,66,69,74,64,63,68,48,56,56,110,56,56,56,56,56,56,56,79,79,79,79,75,35,64,56,61,46,57,67,56,56,56,56,56,56,56,56,81,64,68,72,75,68,66,64,84,68,73,85,140,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,68,60,79,62,79,79,56,61,79,60,79,79,62,79,79,79,79,79,79,64,66,69,71,79,68,58,58,74,73,73,74,79,68,61,60,79,61,79,59,79,79,61,84,79,61,61,58,56,0,47,47,0,0,0,0,0,0,79,0,0,54,79,79,38,65,37,37,37,79,65,79,0,0,0,0,36,0,79,79,61,56,55,63,56,58,69,69,73,69,79,79,110,110,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,69,54,85,85,130,66,130,160,42,63,71,18,18,27,50,27,27,34,120,65,40,71,52,83,45,37,32,55,55,34,55,58,38,38,60,57,76,55,63,63,52,56,56,60,57,76,55,63,63,56,56,55,58,41,55,33,60,6.3,150,150,54,54,31,47,57,57,57,56,52,59,57,52,79,51,52,52,52,56,52,52,52,52,56,52,57,57,57,56,57,59,57,52,56,52,52,54,52,62,54,59,57,57,57,52,66,56,54,58,58,79,79,79,79,60,55,60,61,120,56,120,56,120,53,54,57,57,22,51,54,60,41,41,15,57,41,37,0,58,52,58,79,79,79,79,56,56,56,56,56,56,56,56,79,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,59,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,79,56,56,64,43,54,65,45,36,50,71,39,61,66,64,68,79,70,55,220,52,23,130,53,70,72,67,70,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,120,66,68,120,66,68,120,66,84,110,120,75,66,75,68,130,120,120,63,68,69,68,68,68,120,68,120,67,120,68,120,120,66,110,79,120,130,66,66,65,79,130,240,79,120,65,65,65,65,120,65,79,79,79,65,65,90,68,65,76,81,65,65,170,68,66,66,66,66,66,68,68,68,68,23,43,66,81,66,97,68,68,68,68,66,94,120,170,65,65,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,73,74,78,77,67,87,73,86,62,70,86,77,69,75,78,76,81,68,65,75,75,78,71,69,69,69,70,85,65,73,69,74,81,63,67,67,74,87,79,79,79,79,79,79,79,79,79,79,51,63,64,100,56,60,80,110,65,53,130,55,56,95,57,59,91,54,85,92,86,56,88,51,58,53,62,56,56,63,55,87,52,74,63,60,54,60,93,66,66,66,66,59,66,79,79,79,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,79,79,79,79,79,0,0,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,95,110,110,110,95,79,79,79,79,79,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,79,79,79,79,79,79,76,99,71,73,72,80,99,120,71,91,91,71,94,81,120,95,110,130,130,110,130,110,110,130,120,150,130,120,130,120,120,130,110,130,110,110,110,120,110,110,67,78,76,99,92,68,90,99,74,97,97,74,96,74,74,97,84,100,100,84,100,88,84,100,94,94,94,94,94,94,94,94,110,79,130,94,94,130,79,79,97,97,97,97,97,110,97,79,110,79,140,97,97,120,79,79,78,99,99,78,98,100,78,99,84,100,100,84,100,100,84,100,85,85,85,86,86,85,85,85,85,86,85,86,85,100,87,85,76,95,90,76,89,74,110,110,110,79,110,83,89,110,79,79,58,77,72,70,71,75,87,81,83,96,91,83,89,83,100,86,70,95,95,70,94,72,71,87,79,100,100,79,100,79,79,99,120,79,110,95,100,110,79,79,98,120,120,98,120,98,98,79,140,79,130,120,120,130,79,79,100,120,100,100,100,130,100,130,74,98,95,72,95,72,78,79,82,100,100,82,100,99,82,100,120,120,120,120,120,140,120,120,64,80,91,65,100,77,90,110,84,110,110,82,100,93,91,110,84,110,100,78,100,99,91,100,85,110,110,84,110,100,92,110,64,92,67,70,66,88,64,79,110,79,100,69,81,100,79,79,81,100,81,81,81,97,87,81,120,140,140,120,140,120,120,140,150,150,150,150,180,150,150,150,73,97,95,72,95,93,74,95,76,98,97,73,96,95,77,95,74,98,76,67,76,72,77,91,94,95,100,95,110,92,94,92,85,86,85,86,85,85,85,85,89,130,100,79,79,79,79,78,100,33,68,39,39,39,55,33,100,61,56,59,60,72,66,67,71,62,46,82,82,96,60,71,87,90,58,62,110,79,79,79,170,160,130,170,120,110,98,140,110,110,120,140,110,97,86,120,32,60,32,32,60,76,51,99,110,56,79,79,79,79,79,79,81,74,71,77,110,41,70,80,59,69,81,54,66,100,68,97,50,62,120,100,70,66,80,99,57,91,90,91,68,78,83,59,83,100,73,63,68,88,72,130,89,100,110,57,87,120,63,71,56,72,74,54,100,63,76,84,84,81,58,92,78,67,67,76,73,95,62,76,91,80,80,71,86,90,120,83,94,63,63,130,74,88,73,88,68,79,79,79,56,67,46,74,50,79,79,79,79,87,87,87,87,82,82,82,82,82,82,82,88,88,88,88,88,88,97,100,97,100,82,100,97,100,97,82,73,65,54,35,35,50,50,38,53,55,35,23,44,45,44,120,98,110,120,91,91,91,91,84,84,84,84,84,84,84,92,92,92,94,92,91,95,100,95,100,100,95,100,95,84,46,15,40,90,90,90,90,77,77,77,77,77,77,77,110,100,100,110,100,110,91,92,91,92,92,91,92,91,93,38,110,110,96,96,69,69,69,69,69,69,69,69,69,84,84,81,87,81,87,84,84,84,84,84,84,84,84,84,43,43,85,88,87,87,72,72,72,72,72,72,72,72,72,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,41,41,71,68,68,68,68,68,68,68,68,80,86,84,77,84,77,77,84,77,84,84,77,84,77,82,38,38,38,47,67,100,100,100,100,100,100,100,100,100,120,120,120,100,120,100,100,60,50,60,96,96,96,96,96,96,96,96,96,110,110,110,110,110,110,96,110,96,110,110,97,110,97,55,49,74,65,65,65,65,65,65,65,65,65,77,80,80,77,81,77,70,85,70,85,81,83,86,78,80,39,45,39,55,39,39,39,120,120,110,110,95,95,95,75,75,75,75,110,110,110,110,110,110,90,90,90,90,90,90,90,90,57,64,64,64,64,64,64,64,64,64,79,79,79,79,79,79,82,79,82,79,79,79,79,79,79,38,51,37,37,100,100,100,100,100,100,68,68,68,68,68,68,83,83,40,49,74,89,89,89,89,94,94,94,94,110,110,54,92,92,92,92,92,92,82,82,82,82,98,98,50,90,90,77,77,66,90,90,77,77,86,86,86,84,84,84,84,54,78,37,110,110,110,110,110,110,110,82,69,69,69,69,89,89,89,89,130,130,130,110,110,130,130,60,93,69,69,69,69,100,100,100,100,60,96,96,96,96,96,96,55,64,64,64,64,64,64,64,38,63,56,56,56,56,63,63,63,63,80,80,80,80,80,80,80,80,80,80,80,80,91,91,83,83,83,83,91,91,83,83,83,83,91,91,84,84,84,84,91,91,84,84,84,84,88,88,75,75,75,75,88,88,71,71,71,71,90,90,76,76,76,76,44,110,110,62,62,62,62,110,110,73,73,73,73,110,110,73,73,73,73,52,72,72,98,98,98,98,110,110,62,62,62,62,90,90,75,75,75,75,70,70,70,100,100,100,100,100,74,74,100,100,100,100,100,100,69,69,69,69,100,100,71,71,71,71,96,96,69,68,68,69,110,110,70,70,70,70,130,130,64,64,64,64,84,84,76,76,76,76,45,45,84,84,76,76,76,76,110,110,62,62,62,62,110,110,68,68,68,68,41,110,110,70,70,70,70,110,110,62,62,62,62,110,110,70,70,70,70,69,53,110,160,160,170,140,140,160,160,79,79,79,79,79,79,79,79,79,54,54,76,98,120,140,54,76,98,120,140,54,76,98,120,140,54,76,98,120,140,81,140,110,120,140,98,81,81,79,79,79,67,67,52,52,52,63,53,53,43,55,55,59,69,45,45,69,67,55,50,65,65,65,70,69,69,53,41,41,71,30,71,45,71,20,30,82,84,71,45,71,64,79,59,41,20,32,67,67,43,50,53,45,53,45,65,65,56,32,43,50,66,54,67,65,110,71,110,79,69,65,56,20,67,53,62,32,32,62,69,56,48,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,66,66,66,100,66,66,66,66,140,100,66,66,66,100,140,66,66,68,66,66,66,66,66,66,66,100,39,100,39,66,66,100,100,110,64,66,100,66,100,66,66,78,68,66,66,66,66,66,66,66,66,66,0,0,94,61,61,61,61,52,52,52,99,110,110,91,91,98,130,140,52,87,79,52,66,52,52,53,52,52,52,52,52,52,51,68,38,58,200,71,130,42,58,54,79,79,58,58,73,97,65,65,65,77,65,62,79,79,79,79,79,79,41,45,18,72,45,44,31,59,31,49,79,79,79,79,79,79,62,24,32,33,42,61,20,33,36,37,20,0,0,0,0,110,58,69,54,47,62,47,61,57,57,63,110,110,110,110,110,110,69,66,53,47,47,47,52,54,59,43,51,52,50,70,58,61,47,56,43,42,41,42,40,43,39,61,49,53,44,47,53,60,71,44,35,32,47,52,50,63,49,50,56,57,50,57,58,55,48,42,47,49,39,41,41,46,49,44,61,54,48,67,40,45,51,42,57,82,48,48,50,48,48,45,42,55,61,62,57,49,50,56,59,42,84,43,51,57,110,110,110,110,110,110,110,110,49,35,54,58,57,42,64,44,52,51,58,46,45,37,45,40,42,42,53,60,63,55,47,49,42,54,48,46,63,51,56,58,56,47,67,52,63,62,32,45,51,66,110,110,110,110,110,110,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,71,58,73,97,65,65,65,77,65,62,140,140,140,160,140,140,70,58,73,97,65,65,65,77,65,62,140,140,140,160,140,140,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,62,77,93,64,64,70,72,57,52,32,37,62,52,80,69,73,64,73,73,74,100,68,66,66,56,62,62,54,68,74,92,74,61,85,63,57,48,64,54,57,69,56,63,65,35,48,33,39,40,31,31,37,39,19,24,35,29,45,38,38,42,40,32,35,33,38,44,39,39,40,57,40,40,36,36,31,31,40,21,38,60,40,40,33,40,40,40,27,40,44,60,35,40,40,39,39,54,40,21,28,41,36,40,40,39,55,38,100,68,70,40,92,61,69,44,40,55,40,55,61,42,61,98,24,24,61,60,63,61,61,31,78,55,24,92,61,61,37,55,43,55,55,55,61,61,61,61,50,50,72,24,55,24,61,60,41,39,38,41,35,25,25,41,42,17,17,17,17,30,17,17,30,63,63,42,42,42,42,41,37,17,24,42,43,42,39,35,39,39,39,41,43,52,52,0,0,52,52,52,52,56,56,38,57,57,48,41,43,79,79,79,60,58,59,53,46,48,48,79,44,46,33,42,47,45,44,43,47,45,42,45,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,0,0,72,60,63,69,75,69,63,69,77,57,82,69,85,69,82,69,82,69,82,69,70,66,70,66,60,61,60,61,60,61,59,40,79,69,81,68,83,70,81,68,81,68,81,68,32,32,46,30,76,65,76,65,72,64,61,30,59,32,59,32,59,32,93,110,95,100,93,110,81,68,82,70,81,68,81,68,87,67,85,68,87,67,87,67,66,69,61,69,70,45,76,47,70,45,70,45,59,56,75,57,59,56,59,56,59,56,70,41,68,43,70,41,70,41,76,68,76,68,76,68,81,70,76,68,75,65,75,65,110,90,110,90,110,90,94,85,110,90,69,67,69,67,69,57,67,63,75,58,67,63,68,41,85,57,61,36,47,46,92,55,75,66,75,66,75,66,75,66,75,66,75,66,75,66,75,66,75,66,75,66,75,66,75,66,70,66,70,66,70,66,70,66,70,66,70,66,70,66,70,66,46,30,46,30,87,67,87,67,87,67,87,67,87,67,87,67,87,67,89,67,89,67,89,67,89,67,89,67,81,70,81,70,83,73,83,73,83,73,83,73,83,73,68,65,68,65,68,65,68,65,100,65,56,49,50,50,76,76,76,76,76,76,76,76,76,79,100,100,97,98,86,84,52,52,52,52,52,52,79,79,79,79,100,100,100,100,79,79,68,68,68,68,68,68,68,68,100,100,120,120,120,120,110,100,40,40,40,40,40,40,40,40,51,51,73,75,73,74,60,56,68,68,68,68,68,68,79,79,100,100,130,130,120,76,79,79,66,66,66,66,66,66,66,66,79,96,79,120,79,120,79,100,99,99,99,99,99,99,99,99,100,110,130,130,120,120,110,110,69,69,56,56,70,70,30,30,67,67,69,69,89,89,79,79,76,76,76,76,76,76,76,76,120,120,140,140,140,140,130,120,68,68,68,68,68,68,68,68,140,140,160,160,160,160,150,150,99,99,99,99,99,99,99,99,140,150,170,170,160,160,150,150,76,76,76,76,76,79,76,76,76,76,75,75,120,68,30,68,68,68,68,68,68,79,68,68,70,83,83,96,120,68,68,68,40,40,30,30,79,79,40,40,32,32,46,59,79,68,68,68,66,66,69,69,67,67,66,66,70,70,68,83,80,70,70,70,79,79,99,99,99,79,99,99,87,97,90,100,130,70,68,79,55,110,55,110,37,28,18,70,40,22,6.9,0,0,0,0,0,64,64,70,70,110,110,65,70,30,30,30,30,50,50,50,50,70,70,60,52,37,52,90,35,0,0,0,0,0,0,0,19,170,150,40,61,61,36,60,83,39,50,50,79,69,46,70,55,55,51,100,36,40,36,36,89,78,78,70,70,60,60,53,35,55,53,61,110,55,77,65,110,65,65,110,65,77,110,31,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,24,79,79,60,60,46,60,60,46,46,46,46,25,25,60,46,46,46,46,46,46,46,46,46,46,46,46,46,25,25,79,31,31,31,28,31,66,66,66,66,66,66,66,66,79,79,79,70,77,77,70,70,110,82,130,130,110,92,69]},()=>(mt||ot((mt={exports:{}}).exports,mt),mt.exports)),ht={};((e,p)=>{for(var a in p)nt(e,a,{get:p[a],enumerable:!0})})(ht,{badgen:()=>Tt,calcWidth:()=>gt});var wt=(e=>((e,p,a,d)=>{if(p&&"object"==typeof p||"function"==typeof p)for(let t of ut(p))!ct.call(e,t)&&t!==a&&nt(e,t,{get:()=>p[t],enumerable:!(d=lt(p,t))||d.enumerable});return e})(nt({},"__esModule",{value:!0}),e))(ht),gt=(e=>{let p=e[64];return([...a])=>{let d=0,t=0,r=a.length;for(;r--;)t=e[a[r].charCodeAt()],d+=void 0===t?p:t;return d}})(vt()),ft={green:"3C1",blue:"08C",red:"E43",yellow:"DB1",orange:"F73",purple:"94E",pink:"E5B",grey:"999",gray:"999",cyan:"1BC",black:"2A2A2A"};function Tt({label:e,subject:p,status:a,color:d="blue",style:t,icon:r,iconWidth:i=13,labelColor:s="555",scale:o=1}){if(Et("string"==typeof a," must be string"),!(e=void 0===e?p:e)&&!r)return function({status:e,color:p="blue",style:a,scale:d=1}){Et("string"==typeof e," must be string"),p=ft[p]||p||ft.blue;let t=gt(e),r=t+115,i=bt(5),s=bt(5);return e=_t(e),p=_t(p),"flat"===a?`\n ${e}\n \n \n \n \n`:`\n ${e}\n \n \n \n \n \n \n \n \n \n \n`}({status:a,color:d,style:t,scale:o});d=ft[d]||d,s=ft[s]||s,i*=10;let m=r?null!=e&&e.length?i+30:i-18:0,n=r?m+50:50,l=e?gt(e):0,u=gt(a),c=l+100+m,v=u+100,h=c+v,w=r?' xmlns:xlink="http://www.w3.org/1999/xlink"':"",g=bt(5),f=bt(5);e=e?_t(e):"",a=_t(a),d=_t(d),s=_t(s),r=r&&_t(r);let T=function({label:e,status:p}){return(e?`${e}: `:"")+p}({label:e,status:a});return"flat"===t?`\n ${T}\n \n \n \n \n \n ${r?``:""}\n`:`\n ${T}\n \n \n \n \n \n \n \n \n \n \n \n ${r?``:""}\n`}function _t(e){return e.replace(/\u0026/g,"&").replace(/\u003C/g,"<").replace(/\u003E/g,">").replace(/\u0022/g,""").replace(/\u0027/g,"'")}function bt(e){let p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",a="";for(let d=0;d{const{label:a="coverage",style:d="classic"}=e,t={"49c31a":[100],"97c40f":[99.99,90],a0a127:[89.99,80],cba317:[79.99,60],ce0000:[59.99,0]},r=Object.keys(t).find((e=>1===t[e].length&&p>=t[e][0]||2===t[e].length&&p<=t[e][0]&&p>=t[e][1])),i={style:d,label:a,status:`${p}%`,color:r};return wt.badgen(i)},St=(e,p)=>p+e,Dt=async({client:e,context:p,prNumber:a,body:d,hiddenHeader:t})=>{const r=await(async({client:e,context:p,prNumber:a,hiddenHeader:d})=>{const{data:t}=await e.issues.listComments({...p.repo,issue_number:a});return t.filter((({body:e})=>e.startsWith(d)))})({client:e,context:p,prNumber:a,hiddenHeader:t}),i=r.pop();return await(({client:e,context:p,comments:a})=>Promise.all(a.map((({id:a})=>e.issues.deleteComment({...p.repo,comment_id:a})))))({client:e,context:p,comments:r}),i?(({client:e,context:p,body:a,commentId:d},t)=>e.issues.updateComment({...p.repo,comment_id:d,body:St(a,t)}))({client:e,context:p,body:d,commentId:i.id},t):(({client:e,context:p,prNumber:a,body:d},t)=>e.issues.createComment({...p.repo,issue_number:a,body:St(d,t)}))({client:e,context:p,prNumber:a,body:d},t)},{context:Nt={}}=Ue||{},At=Re.getInput("github-token"),Ot=Ue.getOctokit(At),kt=Re.getInput("app-name")||"noname",Gt=Re.getInput("monorepo-base-path")||"./packages",Pt={readLCovs:async p=>{const a=await(async(p,a)=>{const d=Bd(a,p);console.log("getLcovArray read",d);const t=[];for(const p of d)if(p.path.includes(".info")){const a=await e.promises.readFile(p.path,"utf8"),d=await xd(a);t.push({...p,lcov:d})}return t})(Gt,p);return a.map((e=>({...e,packageName:e.dir.split("/")[1]})))},lcovFile:Re.getInput("lcov-file")||"./coverage/lcov.info",baseFile:Re.getInput("lcov-base"),upsert:async(e,p)=>{const a=Nt.payload.pull_request.number,d=`\x3c!-- ${kt}-${e}-code-coverage-assistant --\x3e`;await Dt({client:Ot,context:Nt,prNumber:a,body:p,hiddenHeader:d})},mkDir:p=>{if(e.existsSync(p)){if(!e.statSync(p).isDirectory())throw new Error("badge path is not a directory")}else e.mkdirSync(p)},writeBadge:(p,a)=>e.writeFileSync(p,a),setFailed:Re.setFailed,info:Re.info,options:{repository:Nt.payload.repository.full_name,prefix:`${process.env.GITHUB_WORKSPACE}/`,pullRequest:Nt.payload.pull_request,singleComment:Re.getInput("single-comment"),maxLines:Re.getInput("max_lines")||100,minCoverage:Re.getInput("min_coverage"),excluded:Re.getInput("exclude"),excludeRoot:Re.getInput("exclude_root"),badgePath:Re.getInput("badge_path"),badgeLabel:Re.getInput("badge_label")||"coverage",badgeStyle:Re.getInput("badge_style")||"classic"}};(async({readLCovs:e,lcovFile:p,baseFile:d,options:t,upsert:r,mkDir:i,writeBadge:s,setFailed:o,info:m})=>{const n=await e("lcov.info"),l=n.length>0&&await e("lcov-base"),u=p&&await Ld(p),c=u&&d&&await Ld(d);t.maxLines>0&&await it({rootLcov:u,rootBaseLcov:c,lcovArray:n,lcovBaseArray:l,options:t,upsert:r}),t.badgePath&&await(({rootLcov:e,lcovArray:p,options:d,mkDir:t,writeBadge:r})=>{const i={label:d.badgeLabel,style:d.badgeStyle},s=[];if(p&&p.forEach((e=>s.push(e))),e&&s.push({packageName:"root_package",lcov:e}),0===s.length)return;const o=a.resolve(d.badgePath);t(o);for(const e of s){const p=jd(e.lcov),d=yt(i,p.toFixed(2)),t=a.join(o,`${e.packageName}.svg`);console.log("writing badge",t);try{r(t,d)}catch(e){console.error("Error writing badge",t,e.toString())}}})({rootLcov:u,lcovArray:n,options:t,mkDir:i,writeBadge:s}),t.minCoverage&&await st({rootLcov:u,lcovArray:n,options:t,setFailed:o,info:m})})(Pt).catch((e=>{console.log(e),Re.setFailed(e.message)})); diff --git a/package.json b/package.json index 19fad25e..f9426c88 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "dependencies": { "@actions/core": "^1.10.0", "@actions/github": "^4.0.0", + "badgen": "^3.2.3", "lcov-parse": "^1.0.0" }, "devDependencies": { diff --git a/src/badge.js b/src/badge.js new file mode 100644 index 00000000..daa2831b --- /dev/null +++ b/src/badge.js @@ -0,0 +1,59 @@ +import { badgen } from "badgen"; +import path from "path"; +import { percentage } from "./lcov"; + +export const badge = (option, pct) => { + const { label = "coverage", style = "classic" } = option; + const colorData = { + "49c31a": [100], + "97c40f": [99.99, 90], + a0a127: [89.99, 80], + cba317: [79.99, 60], + ce0000: [59.99, 0], + }; + const color = Object.keys(colorData).find( + (value) => + (colorData[value].length === 1 && pct >= colorData[value][0]) || + (colorData[value].length === 2 && + pct <= colorData[value][0] && + pct >= colorData[value][1]), + ); + const badgenArgs = { + style, + label, + status: `${pct}%`, + color: color, + }; + return badgen(badgenArgs); +}; + +export const badges = ({ rootLcov, lcovArray, options, mkDir, writeBadge }) => { + const badgeOptions = { + label: options.badgeLabel, + style: options.badgeStyle, + }; + const toBadge = []; + if (lcovArray) lcovArray.forEach((x) => toBadge.push(x)); + if (rootLcov) { + toBadge.push({ + packageName: "root_package", + lcov: rootLcov, + }); + } + if (toBadge.length === 0) { + return; + } + const dirName = path.resolve(options.badgePath); + mkDir(dirName); + for (const lcovObj of toBadge) { + const coverage = percentage(lcovObj.lcov); + const svgStr = badge(badgeOptions, coverage.toFixed(2)); + const fileName = path.join(dirName, `${lcovObj.packageName}.svg`); + console.log("writing badge", fileName); + try { + writeBadge(fileName, svgStr); + } catch (err) { + console.error("Error writing badge", fileName, err.toString()); + } + } +}; diff --git a/src/badge.test.js b/src/badge.test.js new file mode 100644 index 00000000..ad73dc3e --- /dev/null +++ b/src/badge.test.js @@ -0,0 +1,192 @@ +import { badges } from "./badge"; +import path from "path"; + +const someLcov = [ + { + file: "/files/project/src/foo.js", + lines: { + found: 23, + hit: 21, + details: [ + { + line: 20, + hit: 3, + }, + { + line: 21, + hit: 3, + }, + { + line: 22, + hit: 3, + }, + ], + }, + functions: { + hit: 2, + found: 3, + details: [ + { + name: "foo", + line: 19, + }, + { + name: "bar", + line: 33, + }, + { + name: "baz", + line: 54, + }, + ], + }, + branches: { + hit: 3, + found: 3, + details: [ + { + line: 21, + block: 0, + branch: 0, + taken: 1, + }, + { + line: 21, + block: 0, + branch: 1, + taken: 2, + }, + { + line: 37, + block: 1, + branch: 0, + taken: 0, + }, + ], + }, + }, + { + file: "/files/project/src/bar/baz.js", + lines: { + found: 10, + hit: 5, + details: [ + { + line: 20, + hit: 0, + }, + { + line: 21, + hit: 0, + }, + { + line: 22, + hit: 3, + }, + ], + }, + functions: { + hit: 2, + found: 3, + details: [ + { + name: "foo", + line: 19, + }, + { + name: "bar", + line: 33, + }, + { + name: "baz", + line: 54, + }, + ], + }, + }, +]; +const lcovArray = [ + { + packageName: "SOME_PACKAGE", + lcov: someLcov, + }, + { + packageName: "SOME_PACKAGE2", + lcov: someLcov, + }, + { + packageName: "SOME_PACKAGE3", + lcov: someLcov, + }, +]; +const SOME_PATH = "SOME_PATH/"; +describe("badges", function () { + test("should render badges rootLcov", () => { + const mkDir = jest.fn(); + const writeBadge = jest.fn(); + badges({ + rootLcov: someLcov, + lcovArray: undefined, + options: { badgePath: SOME_PATH }, + mkDir, + writeBadge, + }); + expect(mkDir).toBeCalledWith(path.resolve(SOME_PATH)); + expect(writeBadge).toBeCalledWith( + expect.stringContaining("root_package.svg"), + expect.stringContaining(" { + const mkDir = jest.fn(); + const writeBadge = jest.fn(); + badges({ + rootLcov: undefined, + lcovArray, + options: { badgePath: SOME_PATH }, + mkDir, + writeBadge, + }); + expect(mkDir).toBeCalledWith(path.resolve(SOME_PATH)); + for (let i = 0; i < lcovArray.length; i++) { + expect(writeBadge).toHaveBeenNthCalledWith( + i + 1, + expect.stringContaining(`${lcovArray[i].packageName}.svg`), + expect.stringContaining(" { + const mkDir = jest.fn(); + const writeBadge = jest.fn(); + badges({ + rootLcov: undefined, + lcovArray: undefined, + options: { badgePath: SOME_PATH }, + mkDir, + writeBadge, + }); + expect(mkDir).not.toBeCalled(); + expect(writeBadge).not.toBeCalled(); + }); + test("should catch errors when writting", () => { + const mkDir = jest.fn(); + const writeBadge = () => { + throw new Error(); + }; + expect(() => + badges({ + rootLcov: undefined, + lcovArray, + options: { + badgePath: SOME_PATH, + label: "other", + style: "flat", + }, + mkDir, + writeBadge, + }), + ).not.toThrowError(); + expect(mkDir).toBeCalledWith(path.resolve(SOME_PATH)); + }); +}); diff --git a/src/check.js b/src/check.js new file mode 100644 index 00000000..30831c24 --- /dev/null +++ b/src/check.js @@ -0,0 +1,56 @@ +import { percentage } from "./lcov"; + +const checkCoverage = (toCheck) => { + let accum = 0; + for (const lcovObj of toCheck) { + const coverage = percentage(lcovObj.lcov); + const isValidBuild = coverage >= lcovObj.minCoverage; + if (!isValidBuild) { + return { isValidBuild, coverage, name: lcovObj.packageName }; + } + accum += coverage; + } + return { + isValidBuild: true, + coverage: accum / toCheck.length, + name: "average", + }; +}; + +export const checks = ({ rootLcov, lcovArray, options, setFailed, info }) => { + const minCoverage = options.minCoverage || 100; + const excludedFiles = (options.excluded || "") + .split(" ") + .map((x) => x.trim()) + .filter((x) => x.length > 0); + const toCheck = []; + if (lcovArray) { + lcovArray + .filter((x) => !excludedFiles.some((y) => x.packageName === y)) + .forEach((x) => toCheck.push({ minCoverage, ...x })); + } + if (rootLcov && !options.excludeRoot) { + toCheck.unshift({ + packageName: "root_package", + lcov: rootLcov, + minCoverage, + }); + } + if (toCheck.length === 0) { + return; + } + const { isValidBuild, coverage, name } = checkCoverage(toCheck); + if (!isValidBuild) { + setFailed( + `${coverage.toFixed( + 2, + )}% for ${name} is less than min_coverage ${minCoverage}.`, + ); + } else { + info( + `Coverage: ${coverage.toFixed( + 2, + )}% is greater than or equal to min_coverage ${minCoverage}.`, + ); + } +}; diff --git a/src/checks.test.js b/src/checks.test.js new file mode 100644 index 00000000..6afc823c --- /dev/null +++ b/src/checks.test.js @@ -0,0 +1,111 @@ +import { checks } from "./check"; + +describe("checks", function () { + test("should success if fully covered", () => { + const setFailed = jest.fn(); + const info = jest.fn(); + checks({ + rootLcov: [ + { + lines: { + found: 23, + hit: 21, + }, + }, + ], + lcovArray: undefined, + options: { minCoverage: 10 }, + setFailed, + info, + }); + expect(setFailed).not.toBeCalled(); + expect(info).toBeCalledWith( + "Coverage: 91.30% is greater than or equal to min_coverage 10.", + ); + }); + test("should checks root", () => { + const setFailed = jest.fn(); + const info = jest.fn(); + checks({ + rootLcov: [ + { + lines: { + found: 23, + hit: 23, + }, + }, + { + lines: { + found: 10, + hit: 5, + }, + }, + ], + lcovArray: undefined, + options: {}, + setFailed, + info, + }); + expect(setFailed).toBeCalledWith( + "84.85% for root_package is less than min_coverage 100.", + ); + expect(info).not.toBeCalled(); + }); + test("should checks lcovArray", () => { + const setFailed = jest.fn(); + const info = jest.fn(); + checks({ + rootLcov: undefined, + lcovArray: [ + { + packageName: "FULL_COVERAGE", + lcov: [ + { + lines: { + found: 23, + hit: 23, + }, + }, + ], + }, + { + packageName: "SOME_PACKAGE2", + lcov: [ + { + lines: { + found: 23, + hit: 23, + }, + }, + { + lines: { + found: 10, + hit: 5, + }, + }, + ], + }, + ], + options: {}, + setFailed, + info, + }); + expect(setFailed).toBeCalledWith( + "84.85% for SOME_PACKAGE2 is less than min_coverage 100.", + ); + expect(info).not.toBeCalled(); + }); + test("should do nothing if no data", () => { + const setFailed = jest.fn(); + const info = jest.fn(); + checks({ + rootLcov: undefined, + lcovArray: undefined, + options: { minCoverage: 10 }, + setFailed, + info, + }); + expect(setFailed).not.toBeCalled(); + expect(info).not.toBeCalled(); + }); +}); diff --git a/src/cli.js b/src/cli.js index 8f5880cf..94ae1195 100644 --- a/src/cli.js +++ b/src/cli.js @@ -1,32 +1,54 @@ import process from "process"; -import { promises as fs } from "fs"; +import fs from "fs"; import path from "path"; -import { parse } from "./lcov"; -import { diff } from "./comment"; +import { codeCoverageAssistant } from "./codeCoverageAssistant"; +import { getLcovArray } from "./monorepo"; const main = async () => { const file = process.argv[2]; - const beforeFile = process.argv[3]; const prefix = `${path.dirname(path.dirname(path.resolve(file)))}/`; - - const content = await fs.readFile(file, "utf-8"); - const lcov = await parse(content); - - let before; - if (beforeFile) { - const contentBefore = await fs.readFile(beforeFile, "utf-8"); - before = await parse(contentBefore); - } - - const options = { - repository: "example/foo", - commit: "f9d42291812ed03bb197e48050ac38ac6befe4e5", - prefix, - head: "feat/test", - base: "master", + const baseClient = { + upsert: (title, body) => { + console.log("--> COMMENT", "title:", title, "body:", body); + }, + mkDir: (dirName) => console.log("Creating directory", dirName), + writeBadge: (fileName) => console.log("written", fileName), + setFailed: (...x) => console.error("ERROR", ...x), + info: (...x) => console.log("INFO:", ...x), + options: { + repository: "example/foo", + prefix, + pullRequest: { + commit: "f9d42291812ed03bb197e48050ac38ac6befe4e5", + head: "feat/test", + base: "master", + }, + maxLines: 100, + badgePath: "./badges", + appName: "someAppName", + minCoverage: 80, + singleComment: false, + }, }; - - console.log(diff(lcov, before, options)); + if (fs.statSync(file).isDirectory()) { + await codeCoverageAssistant({ + ...baseClient, + readLCovs: async (fileFilter) => { + const arr = await getLcovArray(file, fileFilter); + return arr.map((x) => ({ + ...x, + packageName: x.dir.split("/").slice(-2)[0], + })); + }, + }); + } else { + await codeCoverageAssistant({ + ...baseClient, + readLCovs: () => [], + lcovFile: file, + baseFile: "lcov-base", + }); + } }; main().catch((err) => { diff --git a/src/codeCoverageAssistant.js b/src/codeCoverageAssistant.js new file mode 100644 index 00000000..8e68bd98 --- /dev/null +++ b/src/codeCoverageAssistant.js @@ -0,0 +1,40 @@ +import { readLcov } from "./monorepo"; +import { comments } from "./comment"; +import { checks } from "./check"; +import { badges } from "./badge"; + +export const codeCoverageAssistant = async ({ + readLCovs, + lcovFile, + baseFile, + options, + upsert, + mkDir, + writeBadge, + setFailed, + info, +}) => { + const lcovArray = await readLCovs("lcov.info"); + const lcovBaseArray = + lcovArray.length > 0 && (await readLCovs("lcov-base")); + // Always process root file if exists. + const rootLcov = lcovFile && (await readLcov(lcovFile)); + const rootBaseLcov = rootLcov && baseFile && (await readLcov(baseFile)); + // We cannot comment if is not a pull_request + if (options.maxLines > 0) { + await comments({ + rootLcov, + rootBaseLcov, + lcovArray, + lcovBaseArray, + options, + upsert, + }); + } + if (options.badgePath) { + await badges({ rootLcov, lcovArray, options, mkDir, writeBadge }); + } + if (options.minCoverage) { + await checks({ rootLcov, lcovArray, options, setFailed, info }); + } +}; diff --git a/src/comment.js b/src/comment.js index 99609455..9345180e 100644 --- a/src/comment.js +++ b/src/comment.js @@ -1,4 +1,4 @@ -import { details, summary, b, fragment, table, tbody, tr, th } from "./html"; +import { b, details, fragment, p, summary, table, tbody, th, tr } from "./html"; import { percentage } from "./lcov"; import { tabulate } from "./tabulate"; @@ -9,10 +9,19 @@ import { tabulate } from "./tabulate"; */ const renderEmoji = (pdiff) => { if (pdiff.toFixed(2) < 0) return "❌"; - return "✅"; }; +const renderArrow = (pdiff) => { + if (pdiff < 0) { + return "▾"; + } + if (pdiff > 0) { + return "▴"; + } + return ""; +}; + /** * Compares two arrays of objects and returns with unique lines update * @param {Array} otherArray @@ -21,140 +30,150 @@ const renderEmoji = (pdiff) => { const comparer = (otherArray) => (current) => otherArray.filter( (other) => + other.lines && + current.lines && other.lines.found === current.lines.found && other.lines.hit === current.lines.hit, ).length === 0; +const renderLcov = (lcov, base, appTitle, options) => { + const pbefore = base ? percentage(base) : 0; + const pafter = base ? percentage(lcov) : 0; + const pdiff = pafter - pbefore; + const plus = pdiff > 0 ? "+" : ""; + let report = lcov; + if (base) { + const onlyInLcov = lcov.filter(comparer(base)); + const onlyInBefore = base.filter(comparer(lcov)); + report = onlyInBefore.concat(onlyInLcov); + } + + const h = th(percentage(lcov).toFixed(2), "%"); + + const row = []; + row.push(th(appTitle)); + row.push(h); + if (base) { + const arrow = renderArrow(pdiff); + row.push( + th( + renderEmoji(pdiff), + " ", + arrow, + " ", + plus, + pdiff.toFixed(2), + "%", + ), + ); + } + return [ + table(tbody(tr(...row))), + report.length > options.maxLines + ? p("Coverage Report too long to display") + : details(summary("Coverage Report"), tabulate(report, options)), + "
", + ].join(""); +}; + /** * Github comment for monorepo * @param {Array<{packageName, lcovPath}>} lcovArrayForMonorepo - * @param {{Array<{packageName, lcovBasePath}>}} lcovBaseArrayForMonorepo + * @param {Array<{packageName, lcovPath}>} lcovBaseArrayForMonorepo * @param {*} options */ -const commentForMonorepo = ( +const renderCommentArray = ( lcovArrayForMonorepo, lcovBaseArrayForMonorepo, options, ) => { - const { base } = options; - const html = lcovArrayForMonorepo.map((lcovObj) => { - const baseLcov = lcovBaseArrayForMonorepo.find( - (el) => el.packageName === lcovObj.packageName, - ); - - const pbefore = baseLcov ? percentage(baseLcov.lcov) : 0; - const pafter = baseLcov ? percentage(lcovObj.lcov) : 0; - const pdiff = pafter - pbefore; - const plus = pdiff > 0 ? "+" : ""; - - let arrow = ""; - if (pdiff < 0) { - arrow = "▾"; - } else if (pdiff > 0) { - arrow = "▴"; - } - - const pdiffHtml = baseLcov - ? th( - renderEmoji(pdiff), - " ", - arrow, - " ", - plus, - pdiff.toFixed(2), - "%", - ) - : ""; - let report = lcovObj.lcov; - - if (baseLcov) { - const onlyInLcov = lcovObj.lcov.filter(comparer(baseLcov)); - const onlyInBefore = baseLcov.filter(comparer(lcovObj.lcov)); - report = onlyInBefore.concat(onlyInLcov); - } - - return `${table( - tbody( - tr( - th(lcovObj.packageName), - th(percentage(lcovObj.lcov).toFixed(2), "%"), - pdiffHtml, - ), - ), - )} \n\n ${details( - summary("Coverage Report"), - tabulate(report, options), - )}
`; - }); + const body = lcovArrayForMonorepo + .map((lcovObj) => { + const baseLcov = + lcovBaseArrayForMonorepo && + lcovBaseArrayForMonorepo.find( + (el) => el.packageName === lcovObj.packageName, + ); + return renderLcov( + lcovObj.lcov, + baseLcov && baseLcov.lcov, + lcovObj.packageName, + options, + ); + }) + .join(""); + const { base } = options; const title = `Coverage after merging into ${b(base)}

`; - - return fragment(title, html.join("")); + return fragment(title, body); }; /** * Github comment for single repo - * @param {raw lcov} lcov + * @param {raw} lcov + * @param {raw} baseLcov + * @param {string} appTitle * @param {*} options */ -const comment = (lcov, before, options) => { - const { appName, base } = options; - const pbefore = before ? percentage(before) : 0; - const pafter = before ? percentage(lcov) : 0; - const pdiff = pafter - pbefore; - const plus = pdiff > 0 ? "+" : ""; - - let arrow = ""; - if (pdiff < 0) { - arrow = "▾"; - } else if (pdiff > 0) { - arrow = "▴"; - } - - const pdiffHtml = before - ? th(renderEmoji(pdiff), " ", arrow, " ", plus, pdiff.toFixed(2), "%") - : ""; - - let report = lcov; - - if (before) { - const onlyInLcov = lcov.filter(comparer(before)); - const onlyInBefore = before.filter(comparer(lcov)); - report = onlyInBefore.concat(onlyInLcov); - } - +const renderCommentLine = (lcov, baseLcov, appTitle, options) => { + const inner = renderLcov(lcov, baseLcov, appTitle, options); + const { base } = options; const title = `Coverage after merging into ${b(base)}

`; - const header = appName - ? tbody( - tr(th(appName), th(percentage(lcov).toFixed(2), "%"), pdiffHtml), - ) - : tbody(tr(th(percentage(lcov).toFixed(2), "%"), pdiffHtml)); - - return fragment( - title, - table(header), - "\n\n", - details(summary("Coverage Report"), tabulate(report, options)), - ); + return fragment(title, inner); }; -/** - * Diff in coverage percentage for single repo - * @param {raw lcov} lcov - * @param {raw base lcov} before - * @param {*} options - */ -export const diff = (lcov, before, options) => comment(lcov, before, options); - -/** - * Diff in coverage percentage for monorepo - * @param {Array<{packageName, lcovPath}>} lcovArrayForMonorepo - * @param {{Array<{packageName, lcovBasePath}>}} lcovBaseArrayForMonorepo - * @param {*} options - */ -export const diffForMonorepo = ( - lcovArrayForMonorepo, - lcovBaseArrayForMonorepo, +export const comments = async ({ + rootLcov, + rootBaseLcov, + lcovArray, + lcovBaseArray, options, -) => - commentForMonorepo(lcovArrayForMonorepo, lcovBaseArrayForMonorepo, options); + upsert, +}) => { + if (!options.pullRequest) { + return; + } + const renderOptions = { + maxLines: options.maxLines, + prefix: options.prefix, + repository: options.repository, + commit: options.pullRequest.head.sha, + head: options.pullRequest.head.ref, + base: options.pullRequest.base.ref, + }; + // Comments + if (lcovArray && lcovArray.length > 0) { + if (options.singleComment) { + const body = renderCommentArray( + lcovArray, + lcovBaseArray, + renderOptions, + ); + await upsert("single-comment", body); + } else { + for (const lcovObj of lcovArray) { + const baseLcov = + lcovBaseArray && + lcovBaseArray.find( + (el) => el.packageName === lcovObj.packageName, + ); + const body = renderCommentLine( + lcovObj.lcov, + baseLcov && baseLcov.lcov, + lcovObj.packageName, + renderOptions, + ); + await upsert(`m-${lcovObj.packageName}`, body); + } + } + } + if (rootLcov) { + const body = renderCommentLine( + rootLcov, + rootBaseLcov, + "root", + renderOptions, + ); + await upsert(`root-comment`, body); + } +}; diff --git a/src/comment.test.js b/src/comment.test.js new file mode 100644 index 00000000..0dce333e --- /dev/null +++ b/src/comment.test.js @@ -0,0 +1,271 @@ +import { comments } from "./comment"; + +const someLcov = [ + { + file: "/files/project/src/foo.js", + lines: { + found: 23, + hit: 21, + details: [ + { + line: 20, + hit: 3, + }, + { + line: 21, + hit: 3, + }, + { + line: 22, + hit: 3, + }, + ], + }, + functions: { + hit: 2, + found: 3, + details: [ + { + name: "foo", + line: 19, + }, + { + name: "bar", + line: 33, + }, + { + name: "baz", + line: 54, + }, + ], + }, + branches: { + hit: 3, + found: 3, + details: [ + { + line: 21, + block: 0, + branch: 0, + taken: 1, + }, + { + line: 21, + block: 0, + branch: 1, + taken: 2, + }, + { + line: 37, + block: 1, + branch: 0, + taken: 0, + }, + ], + }, + }, + { + file: "/files/project/src/bar/baz.js", + lines: { + found: 10, + hit: 5, + details: [ + { + line: 20, + hit: 0, + }, + { + line: 21, + hit: 0, + }, + { + line: 22, + hit: 3, + }, + ], + }, + functions: { + hit: 2, + found: 3, + details: [ + { + name: "foo", + line: 19, + }, + { + name: "bar", + line: 33, + }, + { + name: "baz", + line: 54, + }, + ], + }, + }, +]; +const lcovArray = [ + { + packageName: "SOME_PACKAGE", + lcov: someLcov, + }, + { + packageName: "SOME_PACKAGE2", + lcov: someLcov, + }, + { + packageName: "SOME_PACKAGE3", + lcov: someLcov, + }, +]; +const lcovBaseArray = [ + { + packageName: "SOME_PACKAGE", + lcov: someLcov.map((x) => ({ + file: x.file, + lines: x.lines && { ...x.lines, hit: x.lines.hit * 2 }, + })), + }, + { + packageName: "SOME_PACKAGE2", + lcov: someLcov.map((x) => ({ + file: x.file, + lines: x.lines && { ...x.lines, hit: x.lines.hit / 2 }, + })), + }, + { + packageName: "SOME_PACKAGE3", + lcov: someLcov, + }, +]; +const renderOptions = { + maxLines: 10, + prefix: "/files/project/", + repository: "SOME_REPOSITORY", + pullRequest: { + head: { + sha: "SOME_COMMIT", + ref: "SOME_HEAD", + }, + base: { ref: "SOME_BASE" }, + }, +}; +describe("comments", function () { + test("should render rooLcov", async () => { + const upsert = jest.fn(); + await comments({ + rootLcov: someLcov, + rootBaseLcov: undefined, + lcovArray: undefined, + lcovBaseArray: undefined, + options: renderOptions, + upsert, + }); + expect(upsert).toBeCalledWith( + "root-comment", + expect.not.stringContaining("undefined"), + ); + }); + test("should render lcovArray single comment", async () => { + const upsert = jest.fn(); + await comments({ + rootLcov: undefined, + rootBaseLcov: undefined, + lcovArray, + lcovBaseArray: undefined, + options: { ...renderOptions, singleComment: true }, + upsert, + }); + expect(upsert).toBeCalledWith( + "single-comment", + expect.not.stringContaining("undefined"), + ); + }); + test("should render lcovArray multiple comments", async () => { + const upsert = jest.fn(); + await comments({ + rootLcov: undefined, + rootBaseLcov: undefined, + lcovArray, + lcovBaseArray: undefined, + options: renderOptions, + upsert, + }); + expect(upsert).toHaveBeenNthCalledWith( + 1, + "m-SOME_PACKAGE", + expect.not.stringContaining("undefined"), + ); + expect(upsert).toHaveBeenNthCalledWith( + 2, + "m-SOME_PACKAGE2", + expect.not.stringContaining("undefined"), + ); + }); + + test("should render lcovArray single comment with base", async () => { + const upsert = jest.fn(); + await comments({ + rootLcov: undefined, + rootBaseLcov: undefined, + lcovArray, + lcovBaseArray, + options: { ...renderOptions, singleComment: true }, + upsert, + }); + expect(upsert).toBeCalledWith( + "single-comment", + expect.not.stringContaining("undefined"), + ); + }); + test("should render lcovArray multiple comments with base", async () => { + const upsert = jest.fn(); + await comments({ + rootLcov: undefined, + rootBaseLcov: undefined, + lcovArray, + lcovBaseArray, + options: renderOptions, + upsert, + }); + expect(upsert).toHaveBeenNthCalledWith( + 1, + "m-SOME_PACKAGE", + expect.not.stringContaining("undefined"), + ); + expect(upsert).toHaveBeenNthCalledWith( + 2, + "m-SOME_PACKAGE2", + expect.not.stringContaining("undefined"), + ); + }); + + test("should break coverage if too large", async () => { + const upsert = jest.fn(); + await comments({ + rootLcov: someLcov, + rootBaseLcov: undefined, + lcovArray: undefined, + lcovBaseArray: undefined, + options: { ...renderOptions, maxLines: 1 }, + upsert, + }); + expect(upsert).toBeCalledWith( + "root-comment", + expect.stringContaining("Coverage Report too long to display"), + ); + }); + + test("should do nothing if not on pull request", async () => { + const upsert = jest.fn(); + await comments({ + rootLcov: undefined, + rootBaseLcov: undefined, + lcovArray: undefined, + lcovBaseArray: undefined, + options: { ...renderOptions, pullRequest: undefined }, + upsert, + }); + expect(upsert).not.toBeCalled(); + }); +}); diff --git a/src/html.js b/src/html.js index 4a558562..d1ac6989 100644 --- a/src/html.js +++ b/src/html.js @@ -23,6 +23,7 @@ export const b = tag("b"); export const table = tag("table"); export const tbody = tag("tbody"); export const a = tag("a"); +export const p = tag("p"); export const span = tag("span"); export const fragment = (...children) => children.join(""); diff --git a/src/index.js b/src/index.js index 2e0a08f0..e3a6e9a0 100644 --- a/src/index.js +++ b/src/index.js @@ -1,146 +1,68 @@ -import fs, { promises } from "fs"; -import path from "path"; +import fs from "fs"; import core from "@actions/core"; import github from "@actions/github"; -import { parse } from "./lcov"; -import { diff, diffForMonorepo } from "./comment"; +import { codeCoverageAssistant } from "./codeCoverageAssistant"; import { upsertComment } from "./github"; - -/** - * Find all files inside a dir, recursively. - * @function getLcovFiles - * @param {string} dir Dir path string. - * @return {string[{: }]} Array with lcove file names with package names as key. - */ -const getLcovFiles = (dir, filelist) => { - let fileArray = filelist || []; - fs.readdirSync(dir).forEach((file) => { - fileArray = fs.statSync(path.join(dir, file)).isDirectory() - ? getLcovFiles(path.join(dir, file), fileArray) - : fileArray - .filter((f) => f.path.includes("lcov.info")) - .concat({ - name: dir.split("/")[1], - path: path.join(dir, file), - }); - }); - - return fileArray; -}; - -/** - * Find all files inside a dir, recursively for base branch. - * @function getLcovBaseFiles - * @param {string} dir Dir path string. - * @return {string[{: }]} Array with lcove file names with package names as key. - */ -const getLcovBaseFiles = (dir, filelist) => { - let fileArray = filelist || []; - fs.readdirSync(dir).forEach((file) => { - fileArray = fs.statSync(path.join(dir, file)).isDirectory() - ? getLcovBaseFiles(path.join(dir, file), fileArray) - : fileArray - .filter((f) => f.path.includes("lcov-base")) - .concat({ - name: dir.split("/")[1], - path: path.join(dir, file), - }); - }); - - return fileArray; -}; - -const main = async () => { - const { context = {} } = github || {}; - - const token = core.getInput("github-token"); - const lcovFile = core.getInput("lcov-file") || "./coverage/lcov.info"; - const baseFile = core.getInput("lcov-base"); - const appName = core.getInput("app-name"); - // Add base path for monorepo - const monorepoBasePath = core.getInput("monorepo-base-path"); - - const raw = - !monorepoBasePath && - (await promises - .readFile(lcovFile, "utf-8") - .catch((err) => console.error(err))); - if (!monorepoBasePath && !raw) { - console.log(`No coverage report found at '${lcovFile}', exiting...`); - - return; - } - - const baseRaw = - baseFile && - (await promises - .readFile(baseFile, "utf-8") - .catch((err) => console.error(err))); - if (!monorepoBasePath && baseFile && !baseRaw) { - console.log(`No coverage report found at '${baseFile}', ignoring...`); - } - - const lcovArray = monorepoBasePath ? getLcovFiles(monorepoBasePath) : []; - const lcovBaseArray = monorepoBasePath - ? getLcovBaseFiles(monorepoBasePath) - : []; - - const lcovArrayForMonorepo = []; - const lcovBaseArrayForMonorepo = []; - for (const file of lcovArray) { - if (file.path.includes(".info")) { - const rLcove = await promises.readFile(file.path, "utf8"); - const data = await parse(rLcove); - lcovArrayForMonorepo.push({ - packageName: file.name, - lcov: data, - }); - } - } - - for (const file of lcovBaseArray) { - if (file.path.includes(".info")) { - const rLcovBase = await promises.readFile(file.path, "utf8"); - const data = await parse(rLcovBase); - lcovBaseArrayForMonorepo.push({ - packageName: file.name, - lcov: data, - }); +import { getLcovArray } from "./monorepo"; + +const { context = {} } = github || {}; +const token = core.getInput("github-token"); +const githubClient = github.getOctokit(token); +const appName = core.getInput("app-name") || "noname"; +const monorepoBasePath = core.getInput("monorepo-base-path") || "./packages"; +const client = { + readLCovs: async (fileFilter) => { + const arr = await getLcovArray(monorepoBasePath, fileFilter); + return arr.map((x) => ({ ...x, packageName: x.dir.split("/")[1] })); + }, + // Lcov root file + lcovFile: core.getInput("lcov-file") || "./coverage/lcov.info", + // Lcov base file to compare against + baseFile: core.getInput("lcov-base"), + upsert: async (title, body) => { + const prNumber = context.payload.pull_request.number; + const hiddenHeader = ``; + await upsertComment({ + client: githubClient, + context, + prNumber, + body, + hiddenHeader, + }); + }, + mkDir: (dirName) => { + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName); + } else if (!fs.statSync(dirName).isDirectory()) { + throw new Error("badge path is not a directory"); } - } - - const options = { + }, + writeBadge: (fileName, svgStr) => fs.writeFileSync(fileName, svgStr), + setFailed: core.setFailed, + info: core.info, + options: { + // Used to generate the comment that is added repository: context.payload.repository.full_name, - commit: context.payload.pull_request.head.sha, prefix: `${process.env.GITHUB_WORKSPACE}/`, - head: context.payload.pull_request.head.ref, - base: context.payload.pull_request.base.ref, - appName, - }; - - const lcov = !monorepoBasePath && (await parse(raw)); - const baselcov = baseRaw && (await parse(baseRaw)); - - const client = github.getOctokit(token); - - await upsertComment({ - client, - context, - prNumber: context.payload.pull_request.number, - body: !lcovArrayForMonorepo.length - ? diff(lcov, baselcov, options) - : diffForMonorepo( - lcovArrayForMonorepo, - lcovBaseArrayForMonorepo, - options, - ), - hiddenHeader: appName - ? `` - : ``, - }); + pullRequest: context.payload.pull_request, + // Render multiple comment lines + singleComment: core.getInput("single-comment"), + // Maximum number of lines in a comment, used to limit the comment size + maxLines: core.getInput("max_lines") || 100, + // Minimum coverage, 0 == disable coverage check + minCoverage: core.getInput("min_coverage"), + // directories to be excluded from coverage check + excluded: core.getInput("exclude"), + // if true exclude the lcovFile from coverage + excludeRoot: core.getInput("exclude_root"), + // path to the directory where the badges will be written + badgePath: core.getInput("badge_path"), + // see https://www.npmjs.com/package/badgen options + badgeLabel: core.getInput("badge_label") || "coverage", + badgeStyle: core.getInput("badge_style") || "classic", + }, }; - -main().catch((err) => { +codeCoverageAssistant(client).catch((err) => { console.log(err); core.setFailed(err.message); }); diff --git a/src/lcov.js b/src/lcov.js index 3acc4c92..c966fac9 100644 --- a/src/lcov.js +++ b/src/lcov.js @@ -22,5 +22,5 @@ export const percentage = (lcovData) => { found += entry.lines.found; } - return (hit / found) * 100; + return found === 0 ? 0 : (hit / found) * 100; }; diff --git a/src/lcov.test.js b/src/lcov.test.js index db1b896c..be8dc171 100644 --- a/src/lcov.test.js +++ b/src/lcov.test.js @@ -117,3 +117,7 @@ test("percentage should calculate the correct percentage", () => { ]), ).toBe(75); }); + +test("percentage of an empty set must be zero", () => { + expect(percentage([])).toBe(0); +}); diff --git a/src/monorepo.js b/src/monorepo.js new file mode 100644 index 00000000..5d7076e8 --- /dev/null +++ b/src/monorepo.js @@ -0,0 +1,57 @@ +import fs, { promises } from "fs"; +import path from "path"; +import { parse } from "./lcov"; + +/** + * Find all files inside a dir, recursively. + * @function getLcovFiles + * @param {string} fileFilter filenames must include this + * @param {string} dir Dir path string. + * @param {string[]} fileList accumulated result + * @return {{name: string, path: string}[]} Array with lcove file names with package names as key. + */ +const getLcovFiles = (fileFilter, dir) => { + const fileArray = []; + for (const file of fs.readdirSync(dir)) { + const fullPath = path.join(dir, file); + if (fs.statSync(fullPath).isDirectory() && file !== "node_modules") { + fileArray.push(...getLcovFiles(fileFilter, fullPath)); + } else if (fullPath.includes(fileFilter)) { + fileArray.push({ + dir, + path: fullPath, + }); + } + } + + return fileArray; +}; + +export const readLcov = async (lcovFile) => { + const raw = await promises + .readFile(lcovFile, "utf-8") + .catch((err) => console.error(err)); + if (raw) { + console.log("readLcov read", lcovFile); + return parse(raw); + } + console.log(`No coverage report found at '${lcovFile}', ignoring...`); + return raw; +}; +export const getLcovArray = async (monorepoBasePath, fileFilter) => { + const lcovArray = getLcovFiles(fileFilter, monorepoBasePath); + console.log("getLcovArray read", lcovArray); + const lcovArrayForMonorepo = []; + for (const file of lcovArray) { + if (file.path.includes(".info")) { + const rLcove = await promises.readFile(file.path, "utf8"); + const data = await parse(rLcove); + lcovArrayForMonorepo.push({ + ...file, + lcov: data, + }); + } + } + + return lcovArrayForMonorepo; +}; diff --git a/src/tabulate.js b/src/tabulate.js index da91bc27..7775ff8b 100644 --- a/src/tabulate.js +++ b/src/tabulate.js @@ -1,4 +1,4 @@ -import { th, tr, td, table, tbody, a, b, fragment } from "./html"; +import { a, b, fragment, table, tbody, td, th, tr } from "./html"; const filename = (file, indent, options) => { const relative = file.file.replace(options.prefix, ""); @@ -47,9 +47,9 @@ const uncovered = (file, options) => { const toRow = (file, indent, options) => tr( td(filename(file, indent, options)), - td(percentage(file.branches, options)), - td(percentage(file.functions, options)), - td(percentage(file.lines, options)), + td(percentage(file.branches)), + td(percentage(file.functions)), + td(percentage(file.lines)), td(uncovered(file, options)), ); @@ -84,7 +84,7 @@ export const tabulate = (lcov, options) => { .reduce( (acc, key) => [ ...acc, - toFolder(key, options), + toFolder(key), ...folders[key].map((file) => toRow(file, key !== "", options)), ], [], diff --git a/yarn.lock b/yarn.lock index 70199b02..f468a754 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2006,6 +2006,11 @@ babel-preset-jest@^29.2.0: babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" +badgen@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/badgen/-/badgen-3.2.3.tgz#d050e3fa99e5929e9b93cab98d8fb612b5a8b2ef" + integrity sha512-svDuwkc63E/z0ky3drpUppB83s/nlgDciH9m+STwwQoWyq7yCgew1qEfJ+9axkKdNq7MskByptWUN9j1PGMwFA== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"