From 6a4f724ca6f04de10e44cc4a50f77154fd858c5d Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 24 Apr 2026 14:54:53 +0200 Subject: [PATCH] util: add opt-in whitespace preservation for multiline inputs Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- __tests__/util.test.ts | 22 ++++++++++++++++++++++ src/util.ts | 5 +++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/__tests__/util.test.ts b/__tests__/util.test.ts index c38646e6..a51b576f 100644 --- a/__tests__/util.test.ts +++ b/__tests__/util.test.ts @@ -157,6 +157,28 @@ ccc` ]); }); + it('preserves trailing new lines when trimming is disabled', async () => { + setInput( + 'secrets', + `"PRIVATE_SSH_KEY=TESTESTTESTESTTESTESTTESTEST +TESTESTTESTESTTESTESTTESTEST +TESTESTTESTESTTESTESTTESTEST + + +" +` + ); + const res = Util.getInputList('secrets', {ignoreComma: true, trimWhitespace: false}); + expect(res).toEqual([ + `PRIVATE_SSH_KEY=TESTESTTESTESTTESTESTTESTEST +TESTESTTESTESTTESTESTTESTEST +TESTESTTESTESTTESTESTTESTEST + + +` + ]); + }); + it('multiline values without quotes', async () => { setInput( 'secrets', diff --git a/src/util.ts b/src/util.ts index 11ece942..6ba82e66 100644 --- a/src/util.ts +++ b/src/util.ts @@ -27,11 +27,12 @@ export interface ListOpts { comment?: string; commentNoInfix?: boolean; quote?: string | boolean | Buffer | null; + trimWhitespace?: boolean; } export class Util { public static getInputList(name: string, opts?: ListOpts): string[] { - return this.getList(core.getInput(name), opts); + return this.getList(core.getInput(name, {trimWhitespace: opts?.trimWhitespace !== false}), opts); } public static getList(input: string, opts?: ListOpts): string[] { @@ -64,7 +65,7 @@ export class Util { } } - return res.filter(item => item).map(pat => pat.trim()); + return res.filter(item => item).map(item => (opts?.trimWhitespace === false ? item : item.trim())); } public static getInputNumber(name: string): number | undefined {