diff --git a/README.md b/README.md index 43bd56f..157a058 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,12 @@ $fileContentBytes = get-content 'YOURFILEPATH.pfx' -Encoding Byte **Optional** Recursively search for DLL files. + +### `description` + +**Optional** Description of the signed content ([signtool /d flag](https://docs.microsoft.com/en-us/dotnet/framework/tools/signtool-exe#sign-command-options)). + + ### `timestampUrl` **Optional** Url of the timestamp server. Default is 'http://timestamp.digicert.com' @@ -51,6 +57,7 @@ steps: password: '${{ secrets.PASSWORD }}' certificatesha1: '${{ secrets.CERTHASH }}' certificatename: '${{ secrets.CERTNAME }}' + description: 'My App' timestampUrl: 'http://timestamp.digicert.com' folder: 'files' recursive: true diff --git a/action.yml b/action.yml index 7f03f51..17e1e86 100644 --- a/action.yml +++ b/action.yml @@ -22,6 +22,9 @@ inputs: certificatename: description: 'The Name of the certificate' required: false + description: + description: 'Description of the signed content (signtool /d flag)' + required: false timestampUrl: description: 'URL of the timestamp server' required: false diff --git a/dist/index.js b/dist/index.js index 994bb3f..686dde8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1 +1 @@ -(()=>{"use strict";var e={822:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};var s=this&&this.__await||function(e){return this instanceof s?(this.v=e,this):new s(e)};var u=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),n={},verb("next"),verb("throw"),verb("return"),n[Symbol.asyncIterator]=function(){return this},n);function verb(t){n[t]=e[t]&&function(n){return new Promise((function(r,i){n=e[t](n),settle(r,i,n.done,n.value)}))}}function settle(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}};var a=this&&this.__asyncDelegator||function(e){var t,n;return t={},verb("next"),verb("throw",(function(e){throw e})),verb("return"),t[Symbol.iterator]=function(){return this},t;function verb(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:s(e[r](t)),done:r==="return"}:i?i(t):t}:i}};var c=this&&this.__asyncGenerator||function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i;function verb(e){if(r[e])i[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||resume(e,t)}))}}function resume(e,t){try{step(r[e](t))}catch(e){settle(o[0][3],e)}}function step(e){e.value instanceof s?Promise.resolve(e.value.v).then(fulfill,reject):settle(o[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),o.shift(),o.length)resume(o[0][0],o[0][1])}};var f=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const l=o(n(186));const d=n(747);const p=f(n(622));const m=f(n(669));const g=n(129);const h=n(765);const v=m.default.promisify(g.exec);const _=h.env["TEMP"]+"\\certificate.pfx";const y="C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe";const b=[".dll",".exe",".sys",".vxd",".msix",".msixbundle",".appx",".appxbundle",".msi",".msp",".msm",".cab",".ps1",".psm1"];function sleep(e){if(e>0)console.log(`Waiting for ${e} seconds.`);return new Promise((t=>setTimeout(t,e*1e3)))}async function createCertificatePfx(){const e=l.getInput("certificate");const t=Buffer.from(e,"base64");if(t.length==0){console.log('The value for "certificate" is not set.');return false}console.log(`Writing ${t.length} bytes to ${_}.`);await d.promises.writeFile(_,t);return true}async function addCertificateToStore(){try{const t=l.getInput("password");if(t==""){console.log("Password is required to add pfx certificate to store");return false}var e=`certutil -f -p ${t} -importpfx ${_}`;const{stdout:n}=await v(e);console.log(n);return true}catch(e){console.log(e.stdout);console.log(e.stderr);return false}}async function signWithSigntool(e){try{var t=false;var n=l.getInput("timestampUrl");if(n===""){n="http://timestamp.digicert.com"}var r=`"${y}" sign /sm /tr ${n} /td SHA256`;const i=l.getInput("certificatesha1");if(i!=""){r=r+` /sha1 "${i}"`;t=true}const o=l.getInput("certificatename");if(o!=""){t=true;r=r+` /n "${o}"`}if(!t){console.log("You need to include a NAME or a SHA1 Hash for the certificate to sign with.")}r=r+` ${e}`;console.log("Signing command: "+r);const{stdout:s}=await v(r);console.log(s);return true}catch(e){console.log(e.stdout);console.log(e.stderr);return false}}async function trySignFile(e){console.log(`Signing ${e}.`);const t=p.default.extname(e);for(let n=0;n<10;n++){await sleep(n);if(b.includes(t)){if(await signWithSigntool(e))return}}throw`Failed to sign '${e}'.`}function getFiles(e,t){return c(this,arguments,(function*getFiles_1(){const n=yield s(d.promises.readdir(e));for(const r of n){const n=`${e}/${r}`;const i=yield s(d.promises.stat(n));if(i.isFile()){const e=p.default.extname(r);if(b.includes(e)||e==".nupkg")yield yield s(n)}else if(i.isDirectory()&&t){yield s(yield*a(u(getFiles(n,t))))}}}))}async function signFiles(){var e,t;const n=l.getInput("folder",{required:true});const r=l.getInput("recursive")=="true";try{for(var i=u(getFiles(n,r)),o;o=await i.next(),!o.done;){const e=o.value;await trySignFile(e)}}catch(t){e={error:t}}finally{try{if(o&&!o.done&&(t=i.return))await t.call(i)}finally{if(e)throw e.error}}}async function run(){try{if(await createCertificatePfx()){if(await addCertificateToStore())await signFiles()}}catch(e){l.setFailed(`Action failed with error: ${e}`)}}run()},351:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issue=t.issueCommand=void 0;const s=o(n(87));const u=n(278);function issueCommand(e,t,n){const r=new Command(e,t,n);process.stdout.write(r.toString()+s.EOL)}t.issueCommand=issueCommand;function issue(e,t=""){issueCommand(e,{},t)}t.issue=issue;const a="::";class Command{constructor(e,t,n){if(!e){e="missing.command"}this.command=e;this.properties=t;this.message=n}toString(){let e=a+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=true;for(const n in this.properties){if(this.properties.hasOwnProperty(n)){const r=this.properties[n];if(r){if(t){t=false}else{e+=","}e+=`${n}=${escapeProperty(r)}`}}}}e+=`${a}${escapeData(this.message)}`;return e}}function escapeData(e){return u.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return u.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},186:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,n,r){function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,i){function fulfilled(e){try{step(r.next(e))}catch(e){i(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){i(e)}}function step(e){e.done?n(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const u=n(351);const a=n(717);const c=n(278);const f=o(n(87));const l=o(n(622));var d;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(d=t.ExitCode||(t.ExitCode={}));function exportVariable(e,t){const n=c.toCommandValue(t);process.env[e]=n;const r=process.env["GITHUB_ENV"]||"";if(r){const t="_GitHubActionsFileCommandDelimeter_";const r=`${e}<<${t}${f.EOL}${n}${f.EOL}${t}`;a.issueCommand("ENV",r)}else{u.issueCommand("set-env",{name:e},n)}}t.exportVariable=exportVariable;function setSecret(e){u.issueCommand("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){a.issueCommand("PATH",e)}else{u.issueCommand("add-path",{},e)}process.env["PATH"]=`${e}${l.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const n=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!n){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return n}return n.trim()}t.getInput=getInput;function getMultilineInput(e,t){const n=getInput(e,t).split("\n").filter((e=>e!==""));return n}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const n=["true","True","TRUE"];const r=["false","False","FALSE"];const i=getInput(e,t);if(n.includes(i))return true;if(r.includes(i))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){process.stdout.write(f.EOL);u.issueCommand("set-output",{name:e},t)}t.setOutput=setOutput;function setCommandEcho(e){u.issue("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=d.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){u.issueCommand("debug",{},e)}t.debug=debug;function error(e){u.issue("error",e instanceof Error?e.toString():e)}t.error=error;function warning(e){u.issue("warning",e instanceof Error?e.toString():e)}t.warning=warning;function info(e){process.stdout.write(e+f.EOL)}t.info=info;function startGroup(e){u.issue("group",e)}t.startGroup=startGroup;function endGroup(){u.issue("endgroup")}t.endGroup=endGroup;function group(e,t){return s(this,void 0,void 0,(function*(){startGroup(e);let n;try{n=yield t()}finally{endGroup()}return n}))}t.group=group;function saveState(e,t){u.issueCommand("save-state",{name:e},t)}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState},717:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issueCommand=void 0;const s=o(n(747));const u=o(n(87));const a=n(278);function issueCommand(e,t){const n=process.env[`GITHUB_${e}`];if(!n){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!s.existsSync(n)){throw new Error(`Missing file at path: ${n}`)}s.appendFileSync(n,`${a.toCommandValue(t)}${u.EOL}`,{encoding:"utf8"})}t.issueCommand=issueCommand},278:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue},129:e=>{e.exports=require("child_process")},747:e=>{e.exports=require("fs")},87:e=>{e.exports=require("os")},622:e=>{e.exports=require("path")},765:e=>{e.exports=require("process")},669:e=>{e.exports=require("util")}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var o=true;try{e[n].call(i.exports,i,i.exports,__nccwpck_require__);o=false}finally{if(o)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n=__nccwpck_require__(822);module.exports=n})(); \ No newline at end of file +(()=>{"use strict";var e={822:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};var s=this&&this.__await||function(e){return this instanceof s?(this.v=e,this):new s(e)};var u=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),n={},verb("next"),verb("throw"),verb("return"),n[Symbol.asyncIterator]=function(){return this},n);function verb(t){n[t]=e[t]&&function(n){return new Promise((function(r,i){n=e[t](n),settle(r,i,n.done,n.value)}))}}function settle(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}};var a=this&&this.__asyncDelegator||function(e){var t,n;return t={},verb("next"),verb("throw",(function(e){throw e})),verb("return"),t[Symbol.iterator]=function(){return this},t;function verb(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:s(e[r](t)),done:r==="return"}:i?i(t):t}:i}};var c=this&&this.__asyncGenerator||function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),i,o=[];return i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i;function verb(e){if(r[e])i[e]=function(t){return new Promise((function(n,r){o.push([e,t,n,r])>1||resume(e,t)}))}}function resume(e,t){try{step(r[e](t))}catch(e){settle(o[0][3],e)}}function step(e){e.value instanceof s?Promise.resolve(e.value.v).then(fulfill,reject):settle(o[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),o.shift(),o.length)resume(o[0][0],o[0][1])}};var f=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const l=o(n(186));const d=n(747);const p=f(n(622));const m=f(n(669));const g=n(129);const h=n(765);const v=m.default.promisify(g.exec);const _=h.env["TEMP"]+"\\certificate.pfx";const y="C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe";const b=[".dll",".exe",".sys",".vxd",".msix",".msixbundle",".appx",".appxbundle",".msi",".msp",".msm",".cab",".ps1",".psm1"];function sleep(e){if(e>0)console.log(`Waiting for ${e} seconds.`);return new Promise((t=>setTimeout(t,e*1e3)))}async function createCertificatePfx(){const e=l.getInput("certificate");const t=Buffer.from(e,"base64");if(t.length==0){console.log('The value for "certificate" is not set.');return false}console.log(`Writing ${t.length} bytes to ${_}.`);await d.promises.writeFile(_,t);return true}async function addCertificateToStore(){try{const t=l.getInput("password");if(t==""){console.log("Password is required to add pfx certificate to store");return false}var e=`certutil -f -p ${t} -importpfx ${_}`;const{stdout:n}=await v(e);console.log(n);return true}catch(e){console.log(e.stdout);console.log(e.stderr);return false}}async function signWithSigntool(e){try{var t=false;var n=l.getInput("timestampUrl");if(n===""){n="http://timestamp.digicert.com"}var r=`"${y}" sign /sm /tr ${n} /td SHA256`;const i=l.getInput("certificatesha1");if(i!=""){r=r+` /sha1 "${i}"`;t=true}const o=l.getInput("certificatename");if(o!=""){t=true;r=r+` /n "${o}"`}const s=l.getInput("description");if(s!=""){t=true;r=r+` /d "${s}"`}if(!t){console.log("You need to include a NAME or a SHA1 Hash for the certificate to sign with.")}r=r+` ${e}`;console.log("Signing command: "+r);const{stdout:u}=await v(r);console.log(u);return true}catch(e){console.log(e.stdout);console.log(e.stderr);return false}}async function trySignFile(e){console.log(`Signing ${e}.`);const t=p.default.extname(e);for(let n=0;n<10;n++){await sleep(n);if(b.includes(t)){if(await signWithSigntool(e))return}}throw`Failed to sign '${e}'.`}function getFiles(e,t){return c(this,arguments,(function*getFiles_1(){const n=yield s(d.promises.readdir(e));for(const r of n){const n=`${e}/${r}`;const i=yield s(d.promises.stat(n));if(i.isFile()){const e=p.default.extname(r);if(b.includes(e)||e==".nupkg")yield yield s(n)}else if(i.isDirectory()&&t){yield s(yield*a(u(getFiles(n,t))))}}}))}async function signFiles(){var e,t;const n=l.getInput("folder",{required:true});const r=l.getInput("recursive")=="true";try{for(var i=u(getFiles(n,r)),o;o=await i.next(),!o.done;){const e=o.value;await trySignFile(e)}}catch(t){e={error:t}}finally{try{if(o&&!o.done&&(t=i.return))await t.call(i)}finally{if(e)throw e.error}}}async function run(){try{if(await createCertificatePfx()){if(await addCertificateToStore())await signFiles()}}catch(e){l.setFailed(`Action failed with error: ${e}`)}}run()},351:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issue=t.issueCommand=void 0;const s=o(n(87));const u=n(278);function issueCommand(e,t,n){const r=new Command(e,t,n);process.stdout.write(r.toString()+s.EOL)}t.issueCommand=issueCommand;function issue(e,t=""){issueCommand(e,{},t)}t.issue=issue;const a="::";class Command{constructor(e,t,n){if(!e){e="missing.command"}this.command=e;this.properties=t;this.message=n}toString(){let e=a+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=true;for(const n in this.properties){if(this.properties.hasOwnProperty(n)){const r=this.properties[n];if(r){if(t){t=false}else{e+=","}e+=`${n}=${escapeProperty(r)}`}}}}e+=`${a}${escapeData(this.message)}`;return e}}function escapeData(e){return u.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return u.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},186:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,n,r){function adopt(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,i){function fulfilled(e){try{step(r.next(e))}catch(e){i(e)}}function rejected(e){try{step(r["throw"](e))}catch(e){i(e)}}function step(e){e.done?n(e.value):adopt(e.value).then(fulfilled,rejected)}step((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const u=n(351);const a=n(717);const c=n(278);const f=o(n(87));const l=o(n(622));var d;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(d=t.ExitCode||(t.ExitCode={}));function exportVariable(e,t){const n=c.toCommandValue(t);process.env[e]=n;const r=process.env["GITHUB_ENV"]||"";if(r){const t="_GitHubActionsFileCommandDelimeter_";const r=`${e}<<${t}${f.EOL}${n}${f.EOL}${t}`;a.issueCommand("ENV",r)}else{u.issueCommand("set-env",{name:e},n)}}t.exportVariable=exportVariable;function setSecret(e){u.issueCommand("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){a.issueCommand("PATH",e)}else{u.issueCommand("add-path",{},e)}process.env["PATH"]=`${e}${l.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const n=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!n){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return n}return n.trim()}t.getInput=getInput;function getMultilineInput(e,t){const n=getInput(e,t).split("\n").filter((e=>e!==""));return n}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const n=["true","True","TRUE"];const r=["false","False","FALSE"];const i=getInput(e,t);if(n.includes(i))return true;if(r.includes(i))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){process.stdout.write(f.EOL);u.issueCommand("set-output",{name:e},t)}t.setOutput=setOutput;function setCommandEcho(e){u.issue("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=d.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){u.issueCommand("debug",{},e)}t.debug=debug;function error(e){u.issue("error",e instanceof Error?e.toString():e)}t.error=error;function warning(e){u.issue("warning",e instanceof Error?e.toString():e)}t.warning=warning;function info(e){process.stdout.write(e+f.EOL)}t.info=info;function startGroup(e){u.issue("group",e)}t.startGroup=startGroup;function endGroup(){u.issue("endgroup")}t.endGroup=endGroup;function group(e,t){return s(this,void 0,void 0,(function*(){startGroup(e);let n;try{n=yield t()}finally{endGroup()}return n}))}t.group=group;function saveState(e,t){u.issueCommand("save-state",{name:e},t)}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState},717:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){if(r===undefined)r=n;Object.defineProperty(e,r,{enumerable:true,get:function(){return t[n]}})}:function(e,t,n,r){if(r===undefined)r=n;e[r]=t[n]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.hasOwnProperty.call(e,n))r(t,e,n);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issueCommand=void 0;const s=o(n(747));const u=o(n(87));const a=n(278);function issueCommand(e,t){const n=process.env[`GITHUB_${e}`];if(!n){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!s.existsSync(n)){throw new Error(`Missing file at path: ${n}`)}s.appendFileSync(n,`${a.toCommandValue(t)}${u.EOL}`,{encoding:"utf8"})}t.issueCommand=issueCommand},278:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue},129:e=>{e.exports=require("child_process")},747:e=>{e.exports=require("fs")},87:e=>{e.exports=require("os")},622:e=>{e.exports=require("path")},765:e=>{e.exports=require("process")},669:e=>{e.exports=require("util")}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var o=true;try{e[n].call(i.exports,i,i.exports,__nccwpck_require__);o=false}finally{if(o)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n=__nccwpck_require__(822);module.exports=n})(); \ No newline at end of file diff --git a/index.ts b/index.ts index 0bc439b..eaf5054 100644 --- a/index.ts +++ b/index.ts @@ -72,6 +72,11 @@ async function signWithSigntool(fileName: string) { vitalParameterIncluded = true; command = command + ` /n "${name}"` } + const desc : string= core.getInput('description'); + if (desc != ''){ + vitalParameterIncluded = true; + command = command + ` /d "${desc}"` + } if (!vitalParameterIncluded){ console.log("You need to include a NAME or a SHA1 Hash for the certificate to sign with.") }