ssh-key-action/dist/main.js

15 lines
36 KiB
JavaScript
Raw Normal View History

"use strict";var Ft=Object.create;var W=Object.defineProperty;var Vt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Kt=Object.getPrototypeOf,Wt=Object.prototype.hasOwnProperty;var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var O=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ue=(e,t)=>{for(var r in t)W(e,r,{get:t[r],enumerable:!0})},Ce=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Gt(t))!Wt.call(e,i)&&i!==r&&W(e,i,{get:()=>t[i],enumerable:!(n=Vt(t,i))||n.enumerable});return e};var A=(e,t,r)=>(r=e!=null?Ft(Kt(e)):{},Ce(t||!e||!e.__esModule?W(r,"default",{value:e,enumerable:!0}):r,e)),ke=e=>Ce(W({},"__esModule",{value:!0}),e);var J=O(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.toCommandProperties=B.toCommandValue=void 0;function Jt(e){return e==null?"":typeof e=="string"||e instanceof String?e:JSON.stringify(e)}B.toCommandValue=Jt;function zt(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{}}B.toCommandProperties=zt});var Be=O(b=>{"use strict";var Yt=b&&b.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Ht=b&&b.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Qt=b&&b.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&Yt(t,e,r);return Ht(t,e),t};Object.defineProperty(b,"__esModule",{value:!0});b.issue=b.issueCommand=void 0;var Xt=Qt(require("os")),Ne=J();function je(e,t,r){let n=new oe(e,t,r);process.stdout.write(n.toString()+Xt.EOL)}b.issueCommand=je;function Zt(e,t=""){je(e,{},t)}b.issue=Zt;var Me="::",oe=class{constructor(t,r,n){t||(t="missing.command"),this.command=t,this.properties=r,this.message=n}toString(){let t=Me+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let r=!0;for(let n in this.properties)if(this.properties.hasOwnProperty(n)){let i=this.properties[n];i&&(r?r=!1:t+=",",t+=`${n}=${tr(i)}`)}}return t+=`${Me}${er(this.message)}`,t}};function er(e){return Ne.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function tr(e){return Ne.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}});function V(){return z>Y.length-16&&(De.default.randomFillSync(Y),z=0),Y.slice(z,z+=16)}var De,Y,z,se=v(()=>{De=A(require("crypto")),Y=new Uint8Array(256),z=Y.length});var Ie,$e=v(()=>{Ie=/^(?:[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 rr(e){return typeof e=="string"&&Ie.test(e)}var q,G=v(()=>{$e();q=rr});function nr(e,t=0){let r=(g[e[t+0]]+g[e[t+1]]+g[e[t+2]]+g[e[t+3]]+"-"+g[e[t+4]]+g[e[t+5]]+"-"+g[e[t+6]]+g[e[t+7]]+"-"+g[e[t+8]]+g[e[t+9]]+"-"+g[e[t+10]]+g[e[t+11]]+g[e[t+12]]+g[e[t+13]]+g[e[t+14]]+g[e[t+15]]).toLowerCase();if(!q(r))throw TypeError("Stringified UUID is invalid");return r}var g,U,K=v(()=>{G();g=[];for(let e=0;e<256;++e)g.push((e+256).toString(16).substr(1));U=nr});function ir(e,t,r){let n=t&&r||0,i=t||new Array(16);e=e||{};let o=e.node||Le,s=e.clockseq!==void 0?e.clockseq:ae;if(o==null||s==null){let h=e.random||(e.rng||V)();o==null&&(o=Le=[h[0]|1,h[1],h[2],h[3],h[4],h[5]]),s==null&&(s=ae=(h[6]<<8|h[7])&16383)}let c=e.msecs!==void 0?e.msecs:Date.now(),l=e.nsecs!==void 0?e.nsecs:ce+1,a=c-ue+(l-ce)/1e4;if(a<0&&e.clockseq===void 0&&(s=s+1&16383),(a<0||c>ue)&&e.nsecs===void 0&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");ue=c,ce=l,ae=s,c+=122192928e5;let u=((c&268435455)*1e4+l)%4294967296;i[n++]=u>>>24&255,i[n++]=u>>>16&255,i[n++]=u>>>8&255,i[n++]=u&255;let d=c/4294967296*1e4&268435455;i[n++]=d>>>8&255,i[n++]=d&255,i[n++]=d>>>24&15|16,i[n++]=d>>>16&255,i[n++]=s>>>8|128,i[n++]=s&255;for(let h=0;h<6;++h)i[n+h]=o[h];re
`,d.message,d.stack);var h=new Error("tunneling socket could not be established, cause="+d.message);h.code="ECONNRESET",t.request.emit("error",h),n.removeSocket(i)}};P.prototype.removeSocket=function(t){var r=this.sockets.indexOf(t);if(r!==-1){this.sockets.splice(r,1);var n=this.requests.shift();n&&this.createSocket(n,function(i){n.request.onSocket(i)})}};function mt(e,t){var r=this;P.prototype.createSocket.call(r,e,function(n){var i=e.request.getHeader("host"),o=pe({},r.options,{socket:n,servername:i?i.replace(/:.*$/,""):e.host}),s=br.connect(0,o);r.sockets[r.sockets.indexOf(n)]=s,t(s)})}function gt(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function pe(e){for(var t=1,r=arguments.length;t<r;++t){var n=arguments[t];if(typeof n=="object")for(var i=Object.keys(n),o=0,s=i.length;o<s;++o){var c=i[o];n[c]!==void 0&&(e[c]=n[c])}}return e}var C;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?C=function(){var e=Array.prototype.slice.call(arguments);typeof e[0]=="string"?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:C=function(){};I.debug=C});var _t=O((_i,yt)=>{yt.exports=vt()});var Ot=O(p=>{"use strict";var Pr=p&&p.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),qr=p&&p.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ne=p&&p.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&Pr(t,e,r);return qr(t,e),t},m=p&&p.__awaiter||function(e,t,r,n){function i(o){return o instanceof r?o:new r(function(s){s(o)})}return new(r||(r=Promise))(function(o,s){function c(u){try{a(n.next(u))}catch(d){s(d)}}function l(u){try{a(n.throw(u))}catch(d){s(d)}}function a(u){u.done?o(u.value):i(u.value).then(c,l)}a((n=n.apply(e,t||[])).next())})};Object.defineProperty(p,"__esModule",{value:!0});p.HttpClient=p.isHttps=p.HttpClientResponse=p.HttpClientError=p.getProxyUrl=p.MediaTypes=p.Headers=p.HttpCodes=void 0;var X=ne(require("http")),me=ne(require("https")),wt=ne(ht()),Z=ne(_t()),x;(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"})(x=p.HttpCodes||(p.HttpCodes={}));var y;(function(e){e.Accept="accept",e.ContentType="content-type"})(y=p.Headers||(p.Headers={}));var k;(function(e){e.ApplicationJson="application/json"})(k=p.MediaTypes||(p.MediaTypes={}));function Ur(e){let t=wt.getProxyUrl(new URL(e));return t?t.href:""}p.getProxyUrl=Ur;var Cr=[x.MovedPermanently,x.ResourceMoved,x.SeeOther,x.TemporaryRedirect,x.PermanentRedirect],kr=[x.BadGateway,x.ServiceUnavailable,x.GatewayTimeout],Mr=["OPTIONS","GET","DELETE","HEAD"],Nr=10,jr=5,te=class e extends Error{constructor(t,r){super(t),this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}};p.HttpClientError=te;var re=class{constructor(t){this.message=t}readBody(){return m(this,void 0,void 0,function*(){return new Promise(
Error Code : ${s.statusCode}
Error Message: ${s.result.message}`)})).result)===null||r===void 0?void 0:r.value;if(!o)throw new Error("Response json body do not have ID Token field");return o})}static getIDToken(t){return Et(this,void 0,void 0,function*(){try{let r=e.getIDTokenUrl();if(t){let i=encodeURIComponent(t);r=`${r}&audience=${i}`}St.debug(`ID token url is ${r}`);let n=yield e.getCall(r);return St.setSecret(n),n}catch(r){throw new Error(`Error message: ${r.message}`)}})}};$.OidcClient=Oe});var xe=O(_=>{"use strict";var be=_&&_.__awaiter||function(e,t,r,n){function i(o){return o instanceof r?o:new r(function(s){s(o)})}return new(r||(r=Promise))(function(o,s){function c(u){try{a(n.next(u))}catch(d){s(d)}}function l(u){try{a(n.throw(u))}catch(d){s(d)}}function a(u){u.done?o(u.value):i(u.value).then(c,l)}a((n=n.apply(e,t||[])).next())})};Object.defineProperty(_,"__esModule",{value:!0});_.summary=_.markdownSummary=_.SUMMARY_DOCS_URL=_.SUMMARY_ENV_VAR=void 0;var $r=require("os"),Ee=require("fs"),{access:Lr,appendFile:Fr,writeFile:Vr}=Ee.promises;_.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";_.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";var Se=class{constructor(){this._buffer=""}filePath(){return be(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let t=process.env[_.SUMMARY_ENV_VAR];if(!t)throw new Error(`Unable to find environment variable for $${_.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield Lr(t,Ee.constants.R_OK|Ee.constants.W_OK)}catch{throw new Error(`Unable to access summary file: '${t}'. Check if the file has correct read/write permissions.`)}return this._filePath=t,this._filePath})}wrap(t,r,n={}){let i=Object.entries(n).map(([o,s])=>` ${o}="${s}"`).join("");return r?`<${t}${i}>${r}</${t}>`:`<${t}${i}>`}write(t){return be(this,void 0,void 0,function*(){let r=!!t?.overwrite,n=yield this.filePath();return yield(r?Vr:Fr)(n,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return be(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer="",this}addRaw(t,r=!1){return this._buffer+=t,r?this.addEOL():this}addEOL(){return this.addRaw($r.EOL)}addCodeBlock(t,r){let n=Object.assign({},r&&{lang:r}),i=this.wrap("pre",this.wrap("code",t),n);return this.addRaw(i).addEOL()}addList(t,r=!1){let n=r?"ol":"ul",i=t.map(s=>this.wrap("li",s)).join(""),o=this.wrap(n,i);return this.addRaw(o).addEOL()}addTable(t){let r=t.map(i=>{let o=i.map(s=>{if(typeof s=="string")return this.wrap("td",s);let{header:c,data:l,colspan:a,rowspan:u}=s,d=c?"th":"td",h=Object.assign(Object.assign({},a&&{colspan:a}),u&&{rowspan:u});return this.wrap(d,l,h)}).join("");return this.wrap("tr",o)}).join(""),n=this.wrap("table",r);return this.addRaw(n).addEOL()}addDetails(t,r){let n=this.wrap("details",this.wrap("summary",t)+r);return this.addRaw(n).addEOL()}addImage(t,r,n){let{width:i,height:o}=n||{},s=Object.assign(Object.assign({},i&&{width:i}),o&&{height:o}),c=this.wrap("img",null,Object.assign({src:t,alt:r},s));return this.addRaw(c).addEOL()}addHeading(t,r){let n=`h${r}`,i=["h1","h2","h3","h4","h5","h6"].includes(n)?n:"h1",o=this.wrap(i,t);return this.addRaw(o).addEOL()}addSeparator(){let t=this.wrap("hr",null);return this.addRaw(t).addEOL()}addBreak(){let t=this.wrap("br",null);return this.addRaw(t).addEOL()}addQuote(t,r){let n=Object.assign({},r&&{cite:r}),i=this.wrap("blockquote",t,n);return this.addRaw(i).addEOL()}addLink(t,r){let n=this.wrap("a",t,{href:r});return this.addRaw(n).addEOL()}},Rt=new Se;_.markdownSummary=Rt;_.summary=Rt});var At=O(w=>{"use strict";var Gr=w&&w.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Kr=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.defa
`).filter(n=>n!=="");return t&&t.trimWhitespace===!1?r:r.map(n=>n.trim())}f.getMultilineInput=on;function sn(e,t){let r=["true","True","TRUE"],n=["false","False","FALSE"],i=Re(e,t);if(r.includes(i))return!0;if(n.includes(i))return!1;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}
Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}f.getBooleanInput=sn;function an(e,t){if(process.env.GITHUB_OUTPUT||"")return N.issueFileCommand("OUTPUT",N.prepareKeyValueMessage(e,t));process.stdout.write(qt.EOL),S.issueCommand("set-output",{name:e},L.toCommandValue(t))}f.setOutput=an;function un(e){S.issue("echo",e?"on":"off")}f.setCommandEcho=un;function cn(e){process.exitCode=Ut.Failure,Ct(e)}f.setFailed=cn;function ln(){return process.env.RUNNER_DEBUG==="1"}f.isDebug=ln;function fn(e){S.issueCommand("debug",{},e)}f.debug=fn;function Ct(e,t={}){S.issueCommand("error",L.toCommandProperties(t),e instanceof Error?e.toString():e)}f.error=Ct;function dn(e,t={}){S.issueCommand("warning",L.toCommandProperties(t),e instanceof Error?e.toString():e)}f.warning=dn;function hn(e,t={}){S.issueCommand("notice",L.toCommandProperties(t),e instanceof Error?e.toString():e)}f.notice=hn;function pn(e){process.stdout.write(e+qt.EOL)}f.info=pn;function kt(e){S.issue("group",e)}f.startGroup=kt;function Mt(){S.issue("endgroup")}f.endGroup=Mt;function mn(e,t){return Pt(this,void 0,void 0,function*(){kt(e);let r;try{r=yield t()}finally{Mt()}return r})}f.group=mn;function gn(e,t){if(process.env.GITHUB_STATE||"")return N.issueFileCommand("STATE",N.prepareKeyValueMessage(e,t));S.issueCommand("save-state",{name:e},L.toCommandValue(t))}f.saveState=gn;function vn(e){return process.env[`STATE_${e}`]||""}f.getState=vn;function yn(e){return Pt(this,void 0,void 0,function*(){return yield en.OidcClient.getIDToken(e)})}f.getIDToken=yn;var _n=xe();Object.defineProperty(f,"summary",{enumerable:!0,get:function(){return _n.summary}});var wn=xe();Object.defineProperty(f,"markdownSummary",{enumerable:!0,get:function(){return wn.markdownSummary}});var Ae=At();Object.defineProperty(f,"toPosixPath",{enumerable:!0,get:function(){return Ae.toPosixPath}});Object.defineProperty(f,"toWin32Path",{enumerable:!0,get:function(){return Ae.toWin32Path}});Object.defineProperty(f,"toPlatformPath",{enumerable:!0,get:function(){return Ae.toPlatformPath}})});var An={};Ue(An,{main:()=>Lt});module.exports=ke(An);var R=A(require("fs")),qe=A(require("path")),M=A(ie());var Nt=A(require("fs")),jt=A(require("os")),Bt=A(require("path")),Te=A(ie()),On="backup-suffix";function Dt(e){if(!Nt.existsSync(e))return"";let t=`.bak-${Date.now()}`;return Te.saveState(On,t),t}function It(){return Bt.resolve(bn(),".ssh")}function bn(){let e=jt.homedir();return e==="/github/home"?"/root":e}var $t=["github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk="];try{Lt()}catch(e){e instanceof Error&&M.setFailed(e)}function Lt(){let e=M.getInput("key",{required:!0}),t=M.getInput("name"),r=M.getInput("known_hosts",{required:!0}),n=M.getInput("config"),i=M.getInput("if_key_exists"),o=It(),s=Dt(o);R.mkdirSync(o,{recursive:!0,mode:448});let c=[{name:"known_hosts",contents:Pe(Rn(r).join(`
`),!0,!0),options:{mode:420,flag:"a"},mustNotExist:!1}];xn(qe.join(o,t),i)&&c.push({name:t,contents:Pe(e,!1,!0),options:{mode:256,flag:"wx"},mustNotExist:!0}),n!==""&&c.push({name:"config",contents:Pe(n,!0,!0),options:{mode:420,flag:"a"},mustNotExist:!1});let l=[];for(let a of c){let u=qe.join(o,a.name);Sn(u,s,a.mustNotExist)&&l.push(a.name),R.writeFileSync(u,a.contents,a.options)}console.log(`SSH key has been stored to ${o} successfully.`),l.length>0&&console.log(`Following files are backed up in suffix "${s}"; ${l.join(", ")}`)}function Sn(e,t,r){if(t===""||!R.existsSync(e))return!1;let n=`${e}${t}`;return R.renameSync(e,n),r||R.copyFileSync(n,e),!0}function Pe(e,t,r){let n=e;return e.length===0?"":(t&&!n.startsWith(`
`)&&(n=`
${n}`),r&&!n.endsWith(`
`)&&(n=`${n}
`),n)}function xn(e,t){if(!R.existsSync(e))return!0;switch(t){case"replace":return!0;case"ignore":return!1;default:throw new Error('SSH key is already installed. Set "if_key_exists" to "replace" or "ignore" in order to avoid this error.')}}function Rn(e){return e==="unnecessary"?$t:$t.concat(e)}0&&(module.exports={main});
//# sourceMappingURL=main.js.map