import * as core from '@actions/core' export type Inputs = { files: string filesSeparator: string filesFromSourceFile: string filesFromSourceFileSeparator: string filesYaml: string filesYamlFromSourceFile: string filesYamlFromSourceFileSeparator: string filesIgnore: string filesIgnoreSeparator: string filesIgnoreFromSourceFile: string filesIgnoreFromSourceFileSeparator: string filesIgnoreYaml: string filesIgnoreYamlFromSourceFile: string filesIgnoreYamlFromSourceFileSeparator: string separator: string includeAllOldNewRenamedFiles: boolean oldNewSeparator: string oldNewFilesSeparator: string sha: string baseSha: string since: string until: string path: string quotePath: boolean diffRelative: boolean dirNames: boolean dirNamesMaxDepth?: number dirNamesExcludeCurrentDir: boolean json: boolean escapeJson: boolean fetchDepth?: number sinceLastRemoteCommit: boolean writeOutputFiles: boolean outputDir: string outputRenamedFilesAsDeletedAndAdded: boolean recoverDeletedFiles: boolean recoverDeletedFilesToDestination: string token: string api_url: string } export const getInputs = (): Inputs => { const files = core.getInput('files', {required: false}) const filesSeparator = core.getInput('files_separator', { required: false, trimWhitespace: false }) const filesIgnore = core.getInput('files_ignore', {required: false}) const filesIgnoreSeparator = core.getInput('files_ignore_separator', { required: false, trimWhitespace: false }) const filesFromSourceFile = core.getInput('files_from_source_file', { required: false }) const filesFromSourceFileSeparator = core.getInput( 'files_from_source_file_separator', { required: false, trimWhitespace: false } ) const filesYaml = core.getInput('files_yaml', {required: false}) const filesYamlFromSourceFile = core.getInput('files_yaml_from_source_file', { required: false }) const filesYamlFromSourceFileSeparator = core.getInput( 'files_yaml_from_source_file_separator', { required: false, trimWhitespace: false } ) const filesIgnoreFromSourceFile = core.getInput( 'files_ignore_from_source_file', {required: false} ) const filesIgnoreFromSourceFileSeparator = core.getInput( 'files_ignore_from_source_file_separator', { required: false, trimWhitespace: false } ) const filesIgnoreYaml = core.getInput('files_ignore_yaml', {required: false}) const filesIgnoreYamlFromSourceFile = core.getInput( 'files_ignore_yaml_from_source_file', {required: false} ) const filesIgnoreYamlFromSourceFileSeparator = core.getInput( 'files_ignore_yaml_from_source_file_separator', { required: false, trimWhitespace: false } ) const separator = core.getInput('separator', { required: true, trimWhitespace: false }) const includeAllOldNewRenamedFiles = core.getBooleanInput( 'include_all_old_new_renamed_files', {required: false} ) const oldNewSeparator = core.getInput('old_new_separator', { required: true, trimWhitespace: false }) const oldNewFilesSeparator = core.getInput('old_new_files_separator', { required: true, trimWhitespace: false }) const sha = core.getInput('sha', {required: false}) const baseSha = core.getInput('base_sha', {required: false}) const since = core.getInput('since', {required: false}) const until = core.getInput('until', {required: false}) const path = core.getInput('path', {required: false}) const quotePath = core.getBooleanInput('quotepath', {required: false}) const diffRelative = core.getBooleanInput('diff_relative', {required: false}) const dirNames = core.getBooleanInput('dir_names', {required: false}) const dirNamesMaxDepth = core.getInput('dir_names_max_depth', { required: false }) const dirNamesExcludeCurrentDir = core.getBooleanInput( 'dir_names_exclude_current_dir', { required: false } ) const json = core.getBooleanInput('json', {required: false}) const escapeJson = core.getBooleanInput('escape_json', {required: false}) const fetchDepth = core.getInput('fetch_depth', {required: false}) const sinceLastRemoteCommit = core.getBooleanInput( 'since_last_remote_commit', {required: false} ) const writeOutputFiles = core.getBooleanInput('write_output_files', { required: false }) const outputDir = core.getInput('output_dir', {required: false}) const outputRenamedFilesAsDeletedAndAdded = core.getBooleanInput( 'output_renamed_files_as_deleted_and_added', {required: false} ) const recoverDeletedFiles = core.getBooleanInput('recover_deleted_files', { required: false }) const recoverDeletedFilesToDestination = core.getInput( 'recover_deleted_files_to_destination', {required: false} ) const token = core.getInput('token', {required: false}) const api_url = core.getInput('api_url', {required: false}) const inputs: Inputs = { files, filesSeparator, filesFromSourceFile, filesFromSourceFileSeparator, filesYaml, filesYamlFromSourceFile, filesYamlFromSourceFileSeparator, filesIgnore, filesIgnoreSeparator, filesIgnoreFromSourceFile, filesIgnoreFromSourceFileSeparator, filesIgnoreYaml, filesIgnoreYamlFromSourceFile, filesIgnoreYamlFromSourceFileSeparator, separator, // Not Supported via REST API sha, baseSha, since, until, path, quotePath, diffRelative, sinceLastRemoteCommit, recoverDeletedFiles, recoverDeletedFilesToDestination, includeAllOldNewRenamedFiles, oldNewSeparator, oldNewFilesSeparator, // End Not Supported via REST API dirNames, dirNamesExcludeCurrentDir, json, escapeJson, writeOutputFiles, outputDir, outputRenamedFilesAsDeletedAndAdded, token, api_url } if (fetchDepth) { inputs.fetchDepth = Math.max(parseInt(fetchDepth, 10), 2) } if (dirNamesMaxDepth) { inputs.dirNamesMaxDepth = parseInt(dirNamesMaxDepth, 10) } return inputs }