diff --git a/README.md b/README.md index 4941adc..5c70779 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,14 @@ A GitHub action for styling files with [prettier](https://prettier.io). | Parameter | Required | Default | Description | | - | :-: | :-: | - | -| dry | :x: | False | Runs the action in dry mode. Files wont get changed and the action fails if there are unprettified files. | -| prettier_version | :x: | False | Specific prettier version (by default use latest) | +| dry | :x: | false | Runs the action in dry mode. Files wont get changed and the action fails if there are unprettified files. | +| prettier_version | :x: | false | Specific prettier version (by default use latest) | | prettier_options | :x: | `--write **/*.js` | Prettier options (by default it applies to the whole repository) | | commit_options | :x: | - | Custom git commit options | | commit_message | :x: | Prettified Code! | Custom git commit message | -| file_pattern | :x: | * | Custom git add file pattern | +| file_pattern | :x: | * | Custom git add file pattern, can't be used with only_changed! | | branch (depreciated with 3.0)| :white_check_mark: | - | Always set this to `${{ github.head_ref }}` in order to work both with pull requests and push events | +| only_changed | :x: | false | Only prettify changed files, can't be used with file_pattern! | ### Example Config diff --git a/action.yml b/action.yml index de6218f..684b0f6 100644 --- a/action.yml +++ b/action.yml @@ -12,7 +12,7 @@ inputs: description: Commit options required: false file_pattern: - description: File pattern used for `git add` + description: File pattern used for `git add`, can't be used with only_changed! required: false default: '*' prettier_options: @@ -27,6 +27,10 @@ inputs: description: Specific version of prettier (by default just use the latest version) required: false default: false + only_changed: + description: Only prettify files changed in the last commit, can't be used with file_pattern! + required: false + default: false runs: using: 'docker' diff --git a/entrypoint.sh b/entrypoint.sh index 91abb9c..4baa4db 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -41,8 +41,7 @@ echo "Files:" prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS" # To keep runtime good, just continue if something was changed -if _git_changed; -then +if _git_changed; then if $INPUT_DRY; then echo "Prettier found unpretty files!" exit 1 @@ -50,8 +49,15 @@ then # Calling method to configure the git environemnt _git_setup echo "Commiting and pushing changes..." - # Add changes to git - git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}" + if $INPUT_ONLY_CHANGED; then + for file in $(git diff --name-only HEAD^..HEAD) + do + git add $file + done + else + # Add changes to git + git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}" + fi # Commit and push changes back git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} git push origin