import * as glob from 'glob'; import { lstatSync } from 'fs'; export interface Config { github_token: string, github_ref: string, github_repository: string, // user provided input_name?: string, input_body?: string, input_body_path?: string, input_files?: string[], input_draft?: boolean, } type Env = { [key: string]: string | undefined }; export const parseConfig = (env: Env): Config => { return { github_token: env.GITHUB_TOKEN || "", github_ref: (env.GITHUB_REF || ""), github_repository: env.GITHUB_REPOSITORY || "", input_name: env.INPUT_NAME, input_body: env.INPUT_BODY, input_body_path: env.INPUT_BODY_PATH, input_files: (env.INPUT_FILES || "").split(","), input_draft: env.INPUT_DRAFT === 'true' } } export const paths = (patterns: string[]): string[] => { return patterns.reduce((acc: string[], pattern: string): string[] => { return acc.concat(glob.sync(pattern).filter(path => lstatSync(path).isFile())); }, []) } export const isTag = (ref: string): boolean => { return ref.startsWith("refs/tags/") }