Add optional only_show_changed flag to show changed files only

This is a non-breaking new feature that addresses issue #129.

New input parameter:
- only_show_changed (default: false)
  When true, shows only files that were changed by Prettier instead of
  all processed files. Useful for large projects where output is
  overwhelming.

Backward compatibility:
- When flag is NOT set or is false: behavior stays exactly as before
  (shows "Files:" header and all prettier output)
- When flag is set to true: shows only "Changed files:" with git status
  output for modified files

In projects with ~2,000 files, it's hard to see which were changed.
This optional flag makes it easy to identify modified files without
affecting existing users who rely on the current output format.

Closes #129
Refs prettier/prettier#2611
This commit is contained in:
Claude
2025-11-17 15:13:00 +00:00
parent 8c18391fdc
commit 6c29ec09bf
2 changed files with 23 additions and 3 deletions

View File

@@ -74,6 +74,10 @@ inputs:
description: Allow other plugins to be installed. By default, we are checking if the plugins are actually prettier plugins. description: Allow other plugins to be installed. By default, we are checking if the plugins are actually prettier plugins.
required: false required: false
default: false default: false
only_show_changed:
description: Only show files that were changed by Prettier instead of all processed files. Useful for large projects where output is overwhelming.
required: false
default: false
runs: runs:
using: "composite" using: "composite"
@@ -102,6 +106,7 @@ runs:
INPUT_CLEAN_NODE_FOLDER: ${{ inputs.clean_node_folder }} INPUT_CLEAN_NODE_FOLDER: ${{ inputs.clean_node_folder }}
INPUT_GIT_IDENTITY: ${{ inputs.git_identity }} INPUT_GIT_IDENTITY: ${{ inputs.git_identity }}
INPUT_ALLOW_OTHER_PLUGINS: ${{ inputs.allow_other_plugins }} INPUT_ALLOW_OTHER_PLUGINS: ${{ inputs.allow_other_plugins }}
INPUT_ONLY_SHOW_CHANGED: ${{ inputs.only_show_changed }}
branding: branding:
icon: "award" icon: "award"

View File

@@ -65,12 +65,27 @@ fi
PRETTIER_RESULT=0 PRETTIER_RESULT=0
echo "Prettifying files..." echo "Prettifying files..."
echo "Files:" if [ "$INPUT_ONLY_SHOW_CHANGED" = "true" ]; then
npx prettier $INPUT_PRETTIER_OPTIONS \ # New behavior: don't show all files, only show changed files later
|| { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; } >> $GITHUB_STEP_SUMMARY npx prettier $INPUT_PRETTIER_OPTIONS \
|| { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; }
else
# Original behavior: show all files processed by prettier
echo "Files:"
npx prettier $INPUT_PRETTIER_OPTIONS \
|| { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; } >> $GITHUB_STEP_SUMMARY
fi
echo "Prettier result: $PRETTIER_RESULT" echo "Prettier result: $PRETTIER_RESULT"
# Show only the files that were changed by prettier (when flag is enabled)
if [ "$INPUT_ONLY_SHOW_CHANGED" = "true" ] && _git_changed; then
echo ""
echo "Changed files:"
git status --short | tee -a $GITHUB_STEP_SUMMARY
echo ""
fi
# Removing the node_modules folder, so it doesn't get committed if it is not added in gitignore # Removing the node_modules folder, so it doesn't get committed if it is not added in gitignore
if $INPUT_CLEAN_NODE_FOLDER; then if $INPUT_CLEAN_NODE_FOLDER; then
echo "Deleting node_modules/ folder..." echo "Deleting node_modules/ folder..."