diff --git a/lib/main.js b/lib/main.js index 1527cd26..8cb6677b 100644 --- a/lib/main.js +++ b/lib/main.js @@ -46,7 +46,6 @@ function main() { }; yield executeAzCliCommand("--version", true, options); core.debug(`az cli version used:\n${output}`); - let creds = core.getInput('creds', { required: true }); let secrets = new actions_secret_parser_1.SecretParser(creds, actions_secret_parser_1.FormatType.JSON); let servicePrincipalId = secrets.getSecret("$.clientId", false); @@ -55,7 +54,6 @@ function main() { let subscriptionId = secrets.getSecret("$.subscriptionId", false); const enableAzPSSession = core.getInput('enable-AzPSSession').toLowerCase() === "true"; const allowNoSubscriptionsLogin = core.getInput('allow-no-subscriptions').toLowerCase() === "true"; - if (!servicePrincipalId || !servicePrincipalKey || !tenantId) { throw new Error("Not all values are present in the creds object. Ensure clientId, clientSecret and tenantId are supplied."); } @@ -64,11 +62,28 @@ function main() { } // Attempting Az cli login if (allowNoSubscriptionsLogin) { - yield executeAzCliCommand(`login --allow-no-subscriptions --service-principal -u "${servicePrincipalId}" -p "${servicePrincipalKey}" --tenant "${tenantId}"`, true); + let parameters = [ + "--allow-no-subscriptions", + "--service-principal", + "-u", servicePrincipalId, + "-p", servicePrincipalKey, + "--tenant", tenantId + ]; + yield executeAzCliCommand(`login`, true, {}, parameters); } else { - yield executeAzCliCommand(`login --service-principal -u "${servicePrincipalId}" -p "${servicePrincipalKey}" --tenant "${tenantId}"`, true); - yield executeAzCliCommand(`account set --subscription "${subscriptionId}"`, true); + let parameters = [ + "--service-principal", + "-u", servicePrincipalId, + "-p", servicePrincipalKey, + "--tenant", tenantId + ]; + yield executeAzCliCommand(`login`, true, {}, parameters); + parameters = [ + "--subscription", + subscriptionId + ]; + yield executeAzCliCommand(`account set`, true, {}, parameters); } isAzCLISuccess = true; if (enableAzPSSession) { @@ -96,12 +111,11 @@ function main() { } }); } - -function executeAzCliCommand(command, silent, options = {}) { +function executeAzCliCommand(command, silent, options = {}, parameters = []) { return __awaiter(this, void 0, void 0, function* () { options.silent = !!silent; try { - yield exec.exec(`"${azPath}" ${command}`, [], options); + yield exec.exec(`"${azPath}" ${command}`, parameters, options); } catch (error) { throw new Error(error); diff --git a/src/main.ts b/src/main.ts index 3288986e..4bcf3242 100644 --- a/src/main.ts +++ b/src/main.ts @@ -50,11 +50,28 @@ async function main() { // Attempting Az cli login if (allowNoSubscriptionsLogin) { - await executeAzCliCommand(`login --allow-no-subscriptions --service-principal -u "${servicePrincipalId}" -p "${servicePrincipalKey}" --tenant "${tenantId}"`, true); + let parameters = [ + "--allow-no-subscriptions", + "--service-principal", + "-u", servicePrincipalId, + "-p", servicePrincipalKey, + "--tenant", tenantId + ]; + await executeAzCliCommand(`login`, true, {}, parameters); } else { - await executeAzCliCommand(`login --service-principal -u "${servicePrincipalId}" -p "${servicePrincipalKey}" --tenant "${tenantId}"`, true); - await executeAzCliCommand(`account set --subscription "${subscriptionId}"`, true); + let parameters = [ + "--service-principal", + "-u", servicePrincipalId, + "-p", servicePrincipalKey, + "--tenant", tenantId + ]; + await executeAzCliCommand(`login`, true, {}, parameters); + parameters = [ + "--subscription", + subscriptionId + ]; + await executeAzCliCommand(`account set`, true, {}, parameters); } isAzCLISuccess = true; if (enableAzPSSession) { @@ -79,10 +96,10 @@ async function main() { } } -async function executeAzCliCommand(command: string, silent?: boolean, options: any = {}) { +async function executeAzCliCommand(command: string, silent?: boolean, options: any = {}, parameters: any = []) { options.silent = !!silent; try { - await exec.exec(`"${azPath}" ${command}`, [], options); + await exec.exec(`"${azPath}" ${command}`, parameters, options); } catch(error) { throw new Error(error);