diff --git a/__test__/utils.unit.test.ts b/__test__/utils.unit.test.ts index 6a68eb8..3da2439 100644 --- a/__test__/utils.unit.test.ts +++ b/__test__/utils.unit.test.ts @@ -17,6 +17,14 @@ describe('utils tests', () => { } }) + test('getStringAsArray splits string input by newlines and commas', async () => { + const array = utils.getStringAsArray('1, 2, 3\n4, 5, 6') + expect(array.length).toEqual(6) + + const array2 = utils.getStringAsArray('') + expect(array2.length).toEqual(0) + }) + test('getRepoPath successfully returns the path to the repository', async () => { expect(utils.getRepoPath()).toEqual(process.env['GITHUB_WORKSPACE']) expect(utils.getRepoPath('foo')).toEqual( diff --git a/src/main.ts b/src/main.ts index ce69b4e..f3d9171 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,13 +1,14 @@ import * as core from '@actions/core' import {Inputs, createPullRequest} from './create-pull-request' import {inspect} from 'util' +import * as utils from './utils' async function run(): Promise { try { const inputs: Inputs = { token: core.getInput('token'), path: core.getInput('path'), - addPaths: core.getMultilineInput('add-paths'), + addPaths: utils.getInputAsArray('add-paths'), commitMessage: core.getInput('commit-message'), committer: core.getInput('committer'), author: core.getInput('author'), @@ -19,10 +20,10 @@ async function run(): Promise { pushToFork: core.getInput('push-to-fork'), title: core.getInput('title'), body: core.getInput('body'), - labels: core.getMultilineInput('labels'), - assignees: core.getMultilineInput('assignees'), - reviewers: core.getMultilineInput('reviewers'), - teamReviewers: core.getMultilineInput('team-reviewers'), + labels: utils.getInputAsArray('labels'), + assignees: utils.getInputAsArray('assignees'), + reviewers: utils.getInputAsArray('reviewers'), + teamReviewers: utils.getInputAsArray('team-reviewers'), milestone: Number(core.getInput('milestone')), draft: core.getBooleanInput('draft') } diff --git a/src/utils.ts b/src/utils.ts index 6202cbe..a491d91 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,6 +2,20 @@ import * as core from '@actions/core' import * as fs from 'fs' import * as path from 'path' +export function getInputAsArray( + name: string, + options?: core.InputOptions +): string[] { + return getStringAsArray(core.getInput(name, options)) +} + +export function getStringAsArray(str: string): string[] { + return str + .split(/[\n,]+/) + .map(s => s.trim()) + .filter(x => x !== '') +} + export function getRepoPath(relativePath?: string): string { let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] if (!githubWorkspacePath) {