From f79d0b59f6edb99cb6041790c5bf565b2af3892e Mon Sep 17 00:00:00 2001
From: Adrian Kunz <a.kunz@uni-kassel.de>
Date: Fri, 27 Sep 2024 13:25:14 +0200
Subject: [PATCH] fix: K8s api url plural

---
 main.js | 2 +-
 main.ts | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/main.js b/main.js
index 644583e..75a4256 100644
--- a/main.js
+++ b/main.js
@@ -57,7 +57,7 @@ ${e.format(t)}
  
         Error Message: ${i.message}`)})).result)===null||t===void 0?void 0:t.value;if(!n)throw new Error("Response json body do not have ID Token field");return n})}static getIDToken(e){return hl(this,void 0,void 0,function*(){try{let t=A.getIDTokenUrl();if(e){let s=encodeURIComponent(e);t=`${t}&audience=${s}`}ll.debug(`ID token url is ${t}`);let r=yield A.getCall(t);return ll.setSecret(r),r}catch(t){throw new Error(`Error message: ${t.message}`)}})}};yr.OidcClient=xE});var VE=c(JA=>{"use strict";var GE=JA&&JA.__awaiter||function(A,e,t,r){function s(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function o(Q){try{E(r.next(Q))}catch(C){i(C)}}function g(Q){try{E(r.throw(Q))}catch(C){i(C)}}function E(Q){Q.done?n(Q.value):s(Q.value).then(o,g)}E((r=r.apply(A,e||[])).next())})};Object.defineProperty(JA,"__esModule",{value:!0});JA.summary=JA.markdownSummary=JA.SUMMARY_DOCS_URL=JA.SUMMARY_ENV_VAR=void 0;var SN=require("os"),TE=require("fs"),{access:UN,appendFile:LN,writeFile:MN}=TE.promises;JA.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";JA.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";var HE=class{constructor(){this._buffer=""}filePath(){return GE(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let e=process.env[JA.SUMMARY_ENV_VAR];if(!e)throw new Error(`Unable to find environment variable for $${JA.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);try{yield UN(e,TE.constants.R_OK|TE.constants.W_OK)}catch{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,t,r={}){let s=Object.entries(r).map(([n,i])=>` ${n}="${i}"`).join("");return t?`<${e}${s}>${t}</${e}>`:`<${e}${s}>`}write(e){return GE(this,void 0,void 0,function*(){let t=!!e?.overwrite,r=yield this.filePath();return yield(t?MN:LN)(r,this._buffer,{encoding:"utf8"}),this.emptyBuffer()})}clear(){return GE(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(e,t=!1){return this._buffer+=e,t?this.addEOL():this}addEOL(){return this.addRaw(SN.EOL)}addCodeBlock(e,t){let r=Object.assign({},t&&{lang:t}),s=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(s).addEOL()}addList(e,t=!1){let r=t?"ol":"ul",s=e.map(i=>this.wrap("li",i)).join(""),n=this.wrap(r,s);return this.addRaw(n).addEOL()}addTable(e){let t=e.map(s=>{let n=s.map(i=>{if(typeof i=="string")return this.wrap("td",i);let{header:o,data:g,colspan:E,rowspan:Q}=i,C=o?"th":"td",B=Object.assign(Object.assign({},E&&{colspan:E}),Q&&{rowspan:Q});return this.wrap(C,g,B)}).join("");return this.wrap("tr",n)}).join(""),r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){let r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){let{width:s,height:n}=r||{},i=Object.assign(Object.assign({},s&&{width:s}),n&&{height:n}),o=this.wrap("img",null,Object.assign({src:e,alt:t},i));return this.addRaw(o).addEOL()}addHeading(e,t){let r=`h${t}`,s=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1",n=this.wrap(s,e);return this.addRaw(n).addEOL()}addSeparator(){let e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){let e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){let r=Object.assign({},t&&{cite:t}),s=this.wrap("blockquote",e,r);return this.addRaw(s).addEOL()}addLink(e,t){let r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}},dl=new HE;JA.markdownSummary=dl;JA.summary=dl});var fl=c(GA=>{"use strict";var YN=GA&&GA.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t),Object.defineProperty(A,r,{enumerable:!0,get:function(){return e[t]}})}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),xN=GA&&GA.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),JN=GA&&GA.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.hasOwnProperty.call(A,t)&&YN(e,A,t);return xN(e,A),e};Object.defineProperty(GA,"__esModule",{value:!0});GA.toPlatformPath=GA.toWin32Path=GA.toPosixPath=void 0;var GN=JN(require("path"));function TN(A){return A.replace(/[\\]/g,"/")}GA.toPosixPath=TN;function HN(A){return A.replace(/[/]/g,"\\")}GA.toWin32Path=HN;function VN(A){return A.replace(/[/\\]/g,GN.sep)}GA.toPlatformPath=VN});var JE=c(D=>{"use strict";var qN=D&&D.__createBinding||(Object.create?function(A,e,t,r){r===void 0&&(r=t),Object.defineProperty(A,r,{enumerable:!0,get:function(){return e[t]}})}:function(A,e,t,r){r===void 0&&(r=t),A[r]=e[t]}),vN=D&&D.__setModuleDefault||(Object.create?function(A,e){Object.defineProperty(A,"default",{enumerable:!0,value:e})}:function(A,e){A.default=e}),yl=D&&D.__importStar||function(A){if(A&&A.__esModule)return A;var e={};if(A!=null)for(var t in A)t!=="default"&&Object.hasOwnProperty.call(A,t)&&qN(e,A,t);return vN(e,A),e},Dl=D&&D.__awaiter||function(A,e,t,r){function s(n){return n instanceof t?n:new t(function(i){i(n)})}return new(t||(t=Promise))(function(n,i){function o(Q){try{E(r.next(Q))}catch(C){i(C)}}function g(Q){try{E(r.throw(Q))}catch(C){i(C)}}function E(Q){Q.done?n(Q.value):s(Q.value).then(o,g)}E((r=r.apply(A,e||[])).next())})};Object.defineProperty(D,"__esModule",{value:!0});D.getIDToken=D.getState=D.saveState=D.group=D.endGroup=D.startGroup=D.info=D.notice=D.warning=D.error=D.debug=D.isDebug=D.setFailed=D.setCommandEcho=D.setOutput=D.getBooleanInput=D.getMultilineInput=D.getInput=D.addPath=D.setSecret=D.exportVariable=D.ExitCode=void 0;var Ee=ZE(),Nt=DQ(),Dr=ds(),wl=yl(require("os")),WN=yl(require("path")),ON=ul(),Rl;(function(A){A[A.Success=0]="Success",A[A.Failure=1]="Failure"})(Rl=D.ExitCode||(D.ExitCode={}));function PN(A,e){let t=Dr.toCommandValue(e);if(process.env[A]=t,process.env.GITHUB_ENV||"")return Nt.issueFileCommand("ENV",Nt.prepareKeyValueMessage(A,e));Ee.issueCommand("set-env",{name:A},t)}D.exportVariable=PN;function _N(A){Ee.issueCommand("add-mask",{},A)}D.setSecret=_N;function ZN(A){process.env.GITHUB_PATH||""?Nt.issueFileCommand("PATH",A):Ee.issueCommand("add-path",{},A),process.env.PATH=`${A}${WN.delimiter}${process.env.PATH}`}D.addPath=ZN;function qE(A,e){let t=process.env[`INPUT_${A.replace(/ /g,"_").toUpperCase()}`]||"";if(e&&e.required&&!t)throw new Error(`Input required and not supplied: ${A}`);return e&&e.trimWhitespace===!1?t:t.trim()}D.getInput=qE;function XN(A,e){let t=qE(A,e).split(`
 `).filter(r=>r!=="");return e&&e.trimWhitespace===!1?t:t.map(r=>r.trim())}D.getMultilineInput=XN;function KN(A,e){let t=["true","True","TRUE"],r=["false","False","FALSE"],s=qE(A,e);if(t.includes(s))return!0;if(r.includes(s))return!1;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${A}
-Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}D.getBooleanInput=KN;function zN(A,e){if(process.env.GITHUB_OUTPUT||"")return Nt.issueFileCommand("OUTPUT",Nt.prepareKeyValueMessage(A,e));process.stdout.write(wl.EOL),Ee.issueCommand("set-output",{name:A},Dr.toCommandValue(e))}D.setOutput=zN;function jN(A){Ee.issue("echo",A?"on":"off")}D.setCommandEcho=jN;function $N(A){process.exitCode=Rl.Failure,pl(A)}D.setFailed=$N;function Ab(){return process.env.RUNNER_DEBUG==="1"}D.isDebug=Ab;function eb(A){Ee.issueCommand("debug",{},A)}D.debug=eb;function pl(A,e={}){Ee.issueCommand("error",Dr.toCommandProperties(e),A instanceof Error?A.toString():A)}D.error=pl;function tb(A,e={}){Ee.issueCommand("warning",Dr.toCommandProperties(e),A instanceof Error?A.toString():A)}D.warning=tb;function rb(A,e={}){Ee.issueCommand("notice",Dr.toCommandProperties(e),A instanceof Error?A.toString():A)}D.notice=rb;function sb(A){process.stdout.write(A+wl.EOL)}D.info=sb;function kl(A){Ee.issue("group",A)}D.startGroup=kl;function Fl(){Ee.issue("endgroup")}D.endGroup=Fl;function nb(A,e){return Dl(this,void 0,void 0,function*(){kl(A);let t;try{t=yield e()}finally{Fl()}return t})}D.group=nb;function ib(A,e){if(process.env.GITHUB_STATE||"")return Nt.issueFileCommand("STATE",Nt.prepareKeyValueMessage(A,e));Ee.issueCommand("save-state",{name:A},Dr.toCommandValue(e))}D.saveState=ib;function ob(A){return process.env[`STATE_${A}`]||""}D.getState=ob;function gb(A){return Dl(this,void 0,void 0,function*(){return yield ON.OidcClient.getIDToken(A)})}D.getIDToken=gb;var Eb=VE();Object.defineProperty(D,"summary",{enumerable:!0,get:function(){return Eb.summary}});var Qb=VE();Object.defineProperty(D,"markdownSummary",{enumerable:!0,get:function(){return Qb.markdownSummary}});var vE=fl();Object.defineProperty(D,"toPosixPath",{enumerable:!0,get:function(){return vE.toPosixPath}});Object.defineProperty(D,"toWin32Path",{enumerable:!0,get:function(){return vE.toWin32Path}});Object.defineProperty(D,"toPlatformPath",{enumerable:!0,get:function(){return vE.toPlatformPath}})});var jA=pr(JE()),Nl=pr(SE());process.on("unhandledRejection",bl);Bb().catch(bl);async function Bb(){let A=jA.getInput("rancher_url",{required:!0}),e=jA.getInput("rancher_token",{required:!0}),t=jA.getInput("cluster_id",{required:!0}),r=jA.getInput("project_id",{required:!0}),s=jA.getInput("namespace",{required:!0}),n=jA.getInput("kind",{required:!1})?.toLowerCase()||"deployment",i=jA.getInput("workload",{required:!1}),o=jA.getInput("deployment",{required:!1}),g=jA.getInput("docker_image",{required:!0}),E=jA.getInput("container_id",{required:!1})||"0";if(!i){if(!o)throw new Error("Either workload or deployment must be provided");i=o,console.warn(`The 'deployment' argument is deprecated, please use \`workload: ${i}\` instead`)}let Q=Cb(n,E),C=new Nl.HttpClient("actions-rancher-update",void 0,{headers:{Authorization:`Bearer ${e}`}});await C.patchJson(`${A}/k8s/clusters/${t}/apis/apps/v1/namespaces/${s}/${n}/${i}`,[{op:"replace",path:Q,value:g}],{"Content-Type":"application/json-patch+json"}),await C.postJson(`${A}/v3/projects/${t}:${r}/workloads/${n}:${s}:${o}?action=redeploy`,{})}function Cb(A,e){switch(A){case"deployment":case"statefulset":case"daemonset":case"replicaset":case"replicationcontroller":case"job":return`/spec/template/spec/containers/${e}/image`;case"cronjob":return`/spec/jobTemplate/spec/template/spec/containers/${e}/image`;default:throw new Error(`Unsupported workload kind: ${A}`)}}function bl(A){console.log(A),jA.setFailed(A.message)}
+Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}D.getBooleanInput=KN;function zN(A,e){if(process.env.GITHUB_OUTPUT||"")return Nt.issueFileCommand("OUTPUT",Nt.prepareKeyValueMessage(A,e));process.stdout.write(wl.EOL),Ee.issueCommand("set-output",{name:A},Dr.toCommandValue(e))}D.setOutput=zN;function jN(A){Ee.issue("echo",A?"on":"off")}D.setCommandEcho=jN;function $N(A){process.exitCode=Rl.Failure,pl(A)}D.setFailed=$N;function Ab(){return process.env.RUNNER_DEBUG==="1"}D.isDebug=Ab;function eb(A){Ee.issueCommand("debug",{},A)}D.debug=eb;function pl(A,e={}){Ee.issueCommand("error",Dr.toCommandProperties(e),A instanceof Error?A.toString():A)}D.error=pl;function tb(A,e={}){Ee.issueCommand("warning",Dr.toCommandProperties(e),A instanceof Error?A.toString():A)}D.warning=tb;function rb(A,e={}){Ee.issueCommand("notice",Dr.toCommandProperties(e),A instanceof Error?A.toString():A)}D.notice=rb;function sb(A){process.stdout.write(A+wl.EOL)}D.info=sb;function kl(A){Ee.issue("group",A)}D.startGroup=kl;function Fl(){Ee.issue("endgroup")}D.endGroup=Fl;function nb(A,e){return Dl(this,void 0,void 0,function*(){kl(A);let t;try{t=yield e()}finally{Fl()}return t})}D.group=nb;function ib(A,e){if(process.env.GITHUB_STATE||"")return Nt.issueFileCommand("STATE",Nt.prepareKeyValueMessage(A,e));Ee.issueCommand("save-state",{name:A},Dr.toCommandValue(e))}D.saveState=ib;function ob(A){return process.env[`STATE_${A}`]||""}D.getState=ob;function gb(A){return Dl(this,void 0,void 0,function*(){return yield ON.OidcClient.getIDToken(A)})}D.getIDToken=gb;var Eb=VE();Object.defineProperty(D,"summary",{enumerable:!0,get:function(){return Eb.summary}});var Qb=VE();Object.defineProperty(D,"markdownSummary",{enumerable:!0,get:function(){return Qb.markdownSummary}});var vE=fl();Object.defineProperty(D,"toPosixPath",{enumerable:!0,get:function(){return vE.toPosixPath}});Object.defineProperty(D,"toWin32Path",{enumerable:!0,get:function(){return vE.toWin32Path}});Object.defineProperty(D,"toPlatformPath",{enumerable:!0,get:function(){return vE.toPlatformPath}})});var jA=pr(JE()),Nl=pr(SE());process.on("unhandledRejection",bl);Bb().catch(bl);async function Bb(){let A=jA.getInput("rancher_url",{required:!0}),e=jA.getInput("rancher_token",{required:!0}),t=jA.getInput("cluster_id",{required:!0}),r=jA.getInput("project_id",{required:!0}),s=jA.getInput("namespace",{required:!0}),n=jA.getInput("kind",{required:!1})?.toLowerCase()||"deployment",i=jA.getInput("workload",{required:!1}),o=jA.getInput("deployment",{required:!1}),g=jA.getInput("docker_image",{required:!0}),E=jA.getInput("container_id",{required:!1})||"0";if(!i){if(!o)throw new Error("Either workload or deployment must be provided");i=o,console.warn(`The 'deployment' argument is deprecated, please use \`workload: ${i}\` instead`)}let Q=Cb(n,E),C=new Nl.HttpClient("actions-rancher-update",void 0,{headers:{Authorization:`Bearer ${e}`}});await C.patchJson(`${A}/k8s/clusters/${t}/apis/apps/v1/namespaces/${s}/${n}s/${i}`,[{op:"replace",path:Q,value:g}],{"Content-Type":"application/json-patch+json"}),await C.postJson(`${A}/v3/projects/${t}:${r}/workloads/${n}:${s}:${o}?action=redeploy`,{})}function Cb(A,e){switch(A){case"deployment":case"statefulset":case"daemonset":case"replicaset":case"replicationcontroller":case"job":return`/spec/template/spec/containers/${e}/image`;case"cronjob":return`/spec/jobTemplate/spec/template/spec/containers/${e}/image`;default:throw new Error(`Unsupported workload kind: ${A}`)}}function bl(A){console.log(A),jA.setFailed(A.message)}
 /*! Bundled license information:
 
 undici/lib/fetch/body.js:
diff --git a/main.ts b/main.ts
index d963186..aaa1767 100644
--- a/main.ts
+++ b/main.ts
@@ -33,7 +33,7 @@ async function main() {
   });
 
   await http.patchJson(
-    `${rancherUrl}/k8s/clusters/${clusterId}/apis/apps/v1/namespaces/${namespace}/${kind}/${workload}`,
+    `${rancherUrl}/k8s/clusters/${clusterId}/apis/apps/v1/namespaces/${namespace}/${kind}s/${workload}`,
     [
       {
         op: 'replace',