3
0
Fork 0
mirror of https://github.com/tj-actions/changed-files synced 2024-12-21 03:30:38 +00:00
changed-files/action.yml

333 lines
15 KiB
YAML
Raw Normal View History

2022-04-08 09:43:01 +00:00
name: Changed Files
2023-06-19 15:48:20 +00:00
description: Get all Added, Copied, Modified, Deleted, Renamed, Type changed, Unmerged, and Unknown files.
2021-03-05 02:36:52 +00:00
author: tj-actions
2021-03-05 02:36:52 +00:00
inputs:
2021-03-05 12:25:17 +00:00
separator:
description: "Split character for output strings."
required: false
2021-03-05 12:25:17 +00:00
default: " "
include_all_old_new_renamed_files:
2023-11-15 15:38:50 +00:00
description: "Include `all_old_new_renamed_files` output. Note this can generate a large output See: #501."
required: false
default: "false"
old_new_separator:
2022-10-29 21:48:36 +00:00
description: "Split character for old and new filename pairs."
required: false
default: ","
old_new_files_separator:
2022-12-05 22:15:35 +00:00
description: "Split character for old and new renamed filename pairs."
required: false
default: " "
files_from_source_file:
2022-10-29 21:48:36 +00:00
description: "Source file(s) used to populate the `files` input."
required: false
default: ""
files_from_source_file_separator:
description: "Separator used to split the `files_from_source_file` input."
default: "\n"
required: false
files:
2023-11-15 15:38:50 +00:00
description: |
2023-11-16 15:02:45 +00:00
File and directory patterns used to detect changes (Defaults to the entire repo if unset).
2023-11-15 15:38:50 +00:00
NOTE: Multiline file/directory patterns should not include quotes.
required: false
default: ""
files_separator:
2022-10-29 21:48:36 +00:00
description: "Separator used to split the `files` input"
default: "\n"
required: false
files_yaml:
description: "YAML used to define a set of file patterns to detect changes"
required: false
default: ""
files_yaml_from_source_file:
2023-11-15 15:38:50 +00:00
description: "Source file(s) used to populate the `files_yaml` input. Example: https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml"
required: false
default: ""
files_yaml_from_source_file_separator:
description: 'Separator used to split the `files_yaml_from_source_file` input'
default: "\n"
required: false
files_ignore_yaml:
description: "YAML used to define a set of file patterns to ignore changes"
required: false
default: ""
files_ignore_yaml_from_source_file:
2023-11-15 15:38:50 +00:00
description: "Source file(s) used to populate the `files_ignore_yaml` input. Example: https://github.com/tj-actions/changed-files/blob/main/test/changed-files.yml"
required: false
default: ""
files_ignore_yaml_from_source_file_separator:
description: 'Separator used to split the `files_ignore_yaml_from_source_file` input'
default: "\n"
required: false
files_ignore:
2023-11-16 15:02:45 +00:00
description: "Ignore changes to these file(s). NOTE: Multiline file/directory patterns should not include quotes."
required: false
default: ""
files_ignore_separator:
2022-12-15 20:10:14 +00:00
description: "Separator used to split the `files_ignore` input"
default: "\n"
required: false
files_ignore_from_source_file:
2022-10-29 21:48:36 +00:00
description: "Source file(s) used to populate the `files_ignore` input"
required: false
default: ""
files_ignore_from_source_file_separator:
description: 'Separator used to split the `files_ignore_from_source_file` input'
default: "\n"
required: false
sha:
2023-10-26 12:28:05 +00:00
description: "Specify a different commit SHA or branch used for comparing changes"
required: false
base_sha:
2023-10-26 12:28:05 +00:00
description: "Specify a different base commit SHA or branch used for comparing changes"
required: false
since:
2022-10-29 21:48:36 +00:00
description: "Get changed files for commits whose timestamp is older than the given time."
required: false
default: ""
until:
2022-10-29 21:48:36 +00:00
description: "Get changed files for commits whose timestamp is earlier than the given time."
required: false
default: ""
path:
2022-10-29 21:48:36 +00:00
description: "Specify a relative path under `$GITHUB_WORKSPACE` to locate the repository."
required: false
default: "."
quotepath:
description: "Use non-ASCII characters to match files and output the filenames completely verbatim by setting this to `false`"
default: "true"
required: false
diff_relative:
description: "Exclude changes outside the current directory and show path names relative to it. NOTE: This requires you to specify the top-level directory via the `path` input."
required: false
default: "true"
dir_names:
default: "false"
description: "Output unique changed directories instead of filenames. NOTE: This returns `.` for changed files located in the current working directory which defaults to `$GITHUB_WORKSPACE`."
required: false
dir_names_max_depth:
2023-06-06 00:01:34 +00:00
description: "Limit the directory output to a maximum depth e.g `test/test1/test2` with max depth of `2` returns `test/test1`."
required: false
dir_names_exclude_current_dir:
description: "Exclude the current directory represented by `.` from the output when `dir_names` is set to `true`."
required: false
default: "false"
dir_names_include_files:
description: "File and directory patterns to include in the output when `dir_names` is set to `true`. NOTE: This returns only the matching files and also the directory names."
required: false
default: ""
dir_names_include_files_separator:
description: "Separator used to split the `dir_names_include_files` input"
default: "\n"
required: false
2023-09-22 03:49:28 +00:00
dir_names_deleted_files_include_only_deleted_dirs:
2023-09-22 16:06:29 +00:00
description: "Include only directories that have been deleted as opposed to directory names of files that have been deleted in the `deleted_files` output when `dir_names` is set to `true`."
2023-09-22 03:49:28 +00:00
required: false
default: "false"
json:
description: "Output list of changed files in a JSON formatted string which can be used for matrix jobs. Example: https://github.com/tj-actions/changed-files/blob/main/.github/workflows/matrix-example.yml"
required: false
default: "false"
escape_json:
description: "Escape JSON output."
required: false
default: "true"
safe_output:
description: "Apply sanitization to output filenames before being set as output."
required: false
default: "true"
2022-11-03 12:31:50 +00:00
fetch_depth:
description: "Depth of additional branch history fetched. NOTE: This can be adjusted to resolve errors with insufficient history."
required: false
default: "25"
skip_initial_fetch:
2023-11-15 15:38:50 +00:00
description: |
2024-02-18 04:58:39 +00:00
Skip initially fetching additional history to improve performance for shallow repositories.
NOTE: This could lead to errors with missing history. It's intended to be used when you've fetched all necessary history to perform the diff.
required: false
default: "false"
fetch_additional_submodule_history:
description: "Fetch additional history for submodules."
required: false
default: "false"
since_last_remote_commit:
description: "Use the last commit on the remote branch as the `base_sha`. Defaults to the last non-merge commit on the target branch for pull request events and the previous remote commit of the current branch for push events."
required: false
default: "false"
write_output_files:
description: "Write outputs to the `output_dir` defaults to `.github/outputs` folder. NOTE: This creates a `.txt` file by default and a `.json` file if `json` is set to `true`."
required: false
default: "false"
output_dir:
description: "Directory to store output files."
required: false
default: ".github/outputs"
output_renamed_files_as_deleted_and_added:
description: "Output renamed files as deleted and added files."
required: false
default: "false"
recover_deleted_files:
description: "Recover deleted files."
required: false
default: "false"
recover_deleted_files_to_destination:
description: "Recover deleted files to a new destination directory, defaults to the original location."
required: false
default: ""
recover_files:
2023-11-15 15:38:50 +00:00
description: |
File and directory patterns used to recover deleted files,
defaults to the patterns provided via the `files`, `files_from_source_file`, `files_ignore` and `files_ignore_from_source_file` inputs
or all deleted files if no patterns are provided.
required: false
default: ""
recover_files_separator:
description: "Separator used to split the `recover_files` input"
default: "\n"
required: false
recover_files_ignore:
description: "File and directory patterns to ignore when recovering deleted files."
required: false
default: ""
recover_files_ignore_separator:
description: "Separator used to split the `recover_files_ignore` input"
default: "\n"
required: false
token:
2023-11-15 15:38:50 +00:00
description: "GitHub token used to fetch changed files from Github's API."
required: false
default: ${{ github.token }}
api_url:
description: "Github API URL."
required: false
default: ${{ github.api_url }}
use_rest_api:
description: "Force the use of Github's REST API even when a local copy of the repository exists"
required: false
default: "false"
fail_on_initial_diff_error:
description: "Fail when the initial diff fails."
required: false
default: "false"
fail_on_submodule_diff_error:
description: "Fail when the submodule diff fails."
required: false
default: "false"
negation_patterns_first:
description: "Apply the negation patterns first. NOTE: This affects how changed files are matched."
required: false
default: "false"
matrix:
description: "Output changed files in a format that can be used for matrix jobs. Alias for setting inputs `json` to `true` and `escape_json` to `false`."
required: false
default: "false"
exclude_submodules:
description: "Exclude changes to submodules."
required: false
default: "false"
fetch_missing_history_max_retries:
description: "Maximum number of retries to fetch missing history."
required: false
default: "20"
use_posix_path_separator:
description: "Use POSIX path separator `/` for output file paths on Windows."
required: false
default: "false"
tags_pattern:
description: "Tags pattern to include."
required: false
default: "*"
tags_ignore_pattern:
description: "Tags pattern to ignore."
required: false
default: ""
2021-03-05 12:25:17 +00:00
2021-03-05 03:43:17 +00:00
outputs:
added_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that are Added (A)."
added_files_count:
description: "Returns the number of `added_files`"
2021-03-05 03:43:17 +00:00
copied_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that are Copied (C)."
copied_files_count:
description: "Returns the number of `copied_files`"
2021-03-05 03:43:17 +00:00
deleted_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that are Deleted (D)."
deleted_files_count:
description: "Returns the number of `deleted_files`"
2021-03-05 03:43:17 +00:00
modified_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that are Modified (M)."
modified_files_count:
description: "Returns the number of `modified_files`"
2021-03-05 03:43:17 +00:00
renamed_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that are Renamed (R)."
renamed_files_count:
description: "Returns the number of `renamed_files`"
2022-05-14 21:54:38 +00:00
all_old_new_renamed_files:
description: "Returns only files that are Renamed and lists their old and new names. **NOTE:** This requires setting `include_all_old_new_renamed_files` to `true`. Also, keep in mind that this output is global and wouldn't be nested in outputs generated when the `*_yaml_*` input is used. (R)"
all_old_new_renamed_files_count:
description: "Returns the number of `all_old_new_renamed_files`"
type_changed_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that have their file type changed (T)."
type_changed_files_count:
description: "Returns the number of `type_changed_files`"
2021-03-05 03:43:17 +00:00
unmerged_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that are Unmerged (U)."
unmerged_files_count:
description: "Returns the number of `unmerged_files`"
2021-03-05 03:43:17 +00:00
unknown_files:
2022-10-29 21:48:36 +00:00
description: "Returns only files that are Unknown (X)."
unknown_files_count:
description: "Returns the number of `unknown_files`"
all_changed_and_modified_files:
description: "Returns all changed and modified files i.e. a combination of (ACMRDTUX)"
all_changed_and_modified_files_count:
description: "Returns the number of `all_changed_and_modified_files`"
all_changed_files:
description: "Returns all changed files i.e. a combination of all added, copied, modified and renamed files (ACMR)"
all_changed_files_count:
description: "Returns the number of `all_changed_files`"
2021-05-01 17:32:09 +00:00
any_changed:
description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs have changed. This defaults to `true` when no patterns are specified. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*."
only_changed:
2024-02-05 19:42:54 +00:00
description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs have changed. i.e. *includes a combination of all added, copied, modified and renamed files (ACMR)*."
other_changed_files:
description: "Returns all other changed files not listed in the files input i.e. includes a combination of all added, copied, modified and renamed files (ACMR)."
other_changed_files_count:
description: "Returns the number of `other_changed_files`"
all_modified_files:
description: "Returns all changed files i.e. a combination of all added, copied, modified, renamed and deleted files (ACMRD)."
all_modified_files_count:
description: "Returns the number of `all_modified_files`"
any_modified:
description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs have been modified. This defaults to `true` when no patterns are specified. i.e. *includes a combination of all added, copied, modified, renamed, and deleted files (ACMRD)*."
only_modified:
description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs have been modified. (ACMRD)."
other_modified_files:
description: "Returns all other modified files not listed in the files input i.e. a combination of all added, copied, modified, and deleted files (ACMRD)"
other_modified_files_count:
description: "Returns the number of `other_modified_files`"
any_deleted:
description: "Returns `true` when any of the filenames provided using the `files*` or `files_ignore*` inputs have been deleted. This defaults to `true` when no patterns are specified. (D)"
only_deleted:
description: "Returns `true` when only files provided using the `files*` or `files_ignore*` inputs have been deleted. (D)"
other_deleted_files:
description: "Returns all other deleted files not listed in the files input i.e. a combination of all deleted files (D)"
other_deleted_files_count:
description: "Returns the number of `other_deleted_files`"
modified_keys:
description: "Returns all modified YAML keys when the `files_yaml` input is used. i.e. key that contains any path that has either been added, copied, modified, and deleted (ACMRD)"
changed_keys:
description: "Returns all changed YAML keys when the `files_yaml` input is used. i.e. key that contains any path that has either been added, copied, modified, and renamed (ACMR)"
2021-03-05 02:36:52 +00:00
runs:
2023-09-04 21:29:37 +00:00
using: 'node20'
main: 'dist/index.js'
2021-03-05 10:58:42 +00:00
2021-03-05 02:36:52 +00:00
branding:
2021-04-23 10:55:01 +00:00
icon: file-text
2021-03-05 02:36:52 +00:00
color: white