diff --git a/__tests__/unit/input-parsing.test.ts b/__tests__/unit/input-parsing.test.ts index 31c06919..8ed36933 100644 --- a/__tests__/unit/input-parsing.test.ts +++ b/__tests__/unit/input-parsing.test.ts @@ -7,4 +7,8 @@ test('get input parameters', () => { expect(inputParameters.packages).toHaveLength(2) expect(inputParameters.packages).toContain('foo:1.2.3-quux') expect(inputParameters.packages).toContain('bar:4.5.6-xyzzy') + expect(inputParameters.customFields).toEqual({ + key1: 'value', + key2: 'value:with:colons' + }) }) diff --git a/src/input-parameters.ts b/src/input-parameters.ts index 0566e9be..4902028f 100644 --- a/src/input-parameters.ts +++ b/src/input-parameters.ts @@ -35,7 +35,9 @@ export interface InputParameters { const createCustomFields = (inputParameters: string[]): Record => { return inputParameters.reduce( (acc, field) => { - const [key, value] = field.split(':').map(part => part.trim()) + const colonIndex = field.indexOf(':') + const key = field.slice(0, colonIndex).trim() + const value = field.slice(colonIndex + 1).trim() if (key && value) { acc[key] = value } diff --git a/src/test-setup.ts b/src/test-setup.ts index 1b947564..b6bacea0 100644 --- a/src/test-setup.ts +++ b/src/test-setup.ts @@ -9,6 +9,7 @@ process.env = Object.assign(process.env, { INPUT_DEBUG: false, INPUT_DEFAULT_PACKAGE_VERSION: false, INPUT_IGNORE_EXISTING: false, + INPUT_CUSTOM_FIELDS: 'key1:value \n key2:value:with:colons', INPUT_PACKAGES: ' foo:1.2.3-quux \n bar:4.5.6-xyzzy \n ', INPUT_PROJECT: 'Projects-7341', INPUT_SERVER: process.env['OCTOPUS_URL'],