Fix to make utils.readEnv more resilient to user input

This commit is contained in:
Shivam Mathur 2021-07-23 16:19:00 +05:30
parent 906893d397
commit 5227e2cd5c
No known key found for this signature in database
GPG Key ID: 3E13E4C8591ACC2A
3 changed files with 22 additions and 14 deletions

View File

@ -23,7 +23,11 @@ async function cleanup(path: string): Promise<void> {
describe('Utils tests', () => { describe('Utils tests', () => {
it('checking readEnv', async () => { it('checking readEnv', async () => {
process.env['test'] = 'setup-php'; process.env['test'] = 'setup-php';
process.env['test-hyphen'] = 'setup-php';
expect(await utils.readEnv('test')).toBe('setup-php'); expect(await utils.readEnv('test')).toBe('setup-php');
expect(await utils.readEnv('TEST')).toBe('setup-php');
expect(await utils.readEnv('test_hyphen')).toBe('setup-php');
expect(await utils.readEnv('TEST_HYPHEN')).toBe('setup-php');
expect(await utils.readEnv('undefined')).toBe(''); expect(await utils.readEnv('undefined')).toBe('');
}); });

15
dist/index.js vendored
View File

@ -824,13 +824,14 @@ const https = __importStar(__nccwpck_require__(211));
const path = __importStar(__nccwpck_require__(622)); const path = __importStar(__nccwpck_require__(622));
const core = __importStar(__nccwpck_require__(186)); const core = __importStar(__nccwpck_require__(186));
async function readEnv(property) { async function readEnv(property) {
const value = process.env[property]; const property_lc = property.toLowerCase();
switch (value) { const property_uc = property.toUpperCase();
case undefined: return (process.env[property] ||
return ''; process.env[property_lc] ||
default: process.env[property_uc] ||
return value; process.env[property_lc.replace('_', '-')] ||
} process.env[property_uc.replace('_', '-')] ||
'');
} }
exports.readEnv = readEnv; exports.readEnv = readEnv;
async function getInput(name, mandatory) { async function getInput(name, mandatory) {

View File

@ -10,13 +10,16 @@ import * as core from '@actions/core';
* @param property * @param property
*/ */
export async function readEnv(property: string): Promise<string> { export async function readEnv(property: string): Promise<string> {
const value = process.env[property]; const property_lc: string = property.toLowerCase();
switch (value) { const property_uc: string = property.toUpperCase();
case undefined: return (
return ''; process.env[property] ||
default: process.env[property_lc] ||
return value; process.env[property_uc] ||
} process.env[property_lc.replace('_', '-')] ||
process.env[property_uc.replace('_', '-')] ||
''
);
} }
/** /**