From 79fe588704f288de5e478484e4bd54ef7c948104 Mon Sep 17 00:00:00 2001 From: Camilo Celis Guzman Date: Thu, 21 Jul 2022 18:27:50 +0200 Subject: [PATCH] don't log public key and add flag for it if needed --- dist/index.js | 22 ++++++++++++++++++++-- index.js | 22 ++++++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/dist/index.js b/dist/index.js index fe01c67..4e6881b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -324,8 +324,25 @@ const fs = __webpack_require__(747); const crypto = __webpack_require__(417); const { home, sshAgent, sshAdd } = __webpack_require__(972); +// FIXME: slightly modified version of never version of core.getBooleanInput +// as that doesn't respect required:false +core.getBooleanInput = function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE'] + const falseValue = ['false', 'False', 'FALSE'] + const val = core.getInput(name, options) + if (!val) return false // replace with default InputOption + if (trueValue.includes(val)) return true + if (falseValue.includes(val)) return false + throw new TypeError( + `Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\`` + ) +} + + try { const privateKey = core.getInput('ssh-private-key'); + const logPublicKey = core.getBooleanInput('log-public-key', {required: false}); if (!privateKey) { core.setFailed("The ssh-private-key argument is empty. Maybe the secret has not been configured, or you are using a wrong secret name in your workflow file."); @@ -374,8 +391,9 @@ try { const parts = key.match(/\bgithub\.com[:/]([_.a-z0-9-]+\/[_.a-z0-9-]+)/i); if (!parts) { - console.log(`Comment for (public) key '${key}' does not match GitHub URL pattern. Not treating it as a GitHub deploy key.`); - + if (logPublicKey) { + console.log(`Comment for (public) key '${key}' does not match GitHub URL pattern. Not treating it as a GitHub deploy key.`); + } return; } diff --git a/index.js b/index.js index e08d46f..91d0514 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,25 @@ const fs = require('fs'); const crypto = require('crypto'); const { home, sshAgent, sshAdd } = require('./paths.js'); +// FIXME: slightly modified version of never version of core.getBooleanInput +// as that doesn't respect required:false +core.getBooleanInput = function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE'] + const falseValue = ['false', 'False', 'FALSE'] + const val = core.getInput(name, options) + if (!val) return false // replace with default InputOption + if (trueValue.includes(val)) return true + if (falseValue.includes(val)) return false + throw new TypeError( + `Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\`` + ) +} + + try { const privateKey = core.getInput('ssh-private-key'); + const logPublicKey = core.getBooleanInput('log-public-key', {required: false}); if (!privateKey) { core.setFailed("The ssh-private-key argument is empty. Maybe the secret has not been configured, or you are using a wrong secret name in your workflow file."); @@ -54,8 +71,9 @@ try { const parts = key.match(/\bgithub\.com[:/]([_.a-z0-9-]+\/[_.a-z0-9-]+)/i); if (!parts) { - console.log(`Comment for (public) key '${key}' does not match GitHub URL pattern. Not treating it as a GitHub deploy key.`); - + if (logPublicKey) { + console.log(`Comment for (public) key '${key}' does not match GitHub URL pattern. Not treating it as a GitHub deploy key.`); + } return; }