189 Commits
v2.0 ... v4.1.1

Author SHA1 Message Date
b305fc89f5 Merge pull request #76 from creyD/dev
Bugfix for #74
2021-12-06 12:26:52 +01:00
26c4892179 Fixed a bug with missing " 2021-12-06 12:22:36 +01:00
86625cc217 Merged the input commit description if statement 2021-12-06 12:18:46 +01:00
fdbbee3567 Bugfix for the commit description 2021-12-06 12:15:24 +01:00
f9f10e0719 Added spacing for commit description 2021-12-06 12:11:52 +01:00
2b5c9a8de1 Merge pull request #75 from insyri/dev
Fix for #74
2021-12-06 12:02:31 +01:00
insyri
f44961013c Variable assignment fix, issued via CodeFactor 2021-12-04 18:58:13 -05:00
insyri
a9474e2eb8 Corrected if/else for INPUT_COMMIT_DESCRIPTION. 2021-12-04 18:46:31 -05:00
dbdc55734e Merge pull request #73 from creyD/dev
v4.1 Deployment
2021-11-30 18:42:58 +01:00
9accc7b9f5 Added further context for the working_directory 2021-11-30 18:03:30 +01:00
41bf601bb6 Merge pull request #71 from sksat/handle-space-in-fname
handle space in file name
2021-11-30 17:58:28 +01:00
fabe625ef2 Bumped versions 2021-11-30 17:52:15 +01:00
b072432b6b Added slight explanation to the readme 2021-11-30 17:22:11 +01:00
aecd8574c0 Merge pull request #65 from JLHasson/patch-1
Use 'main' instead of 'master' for examples
2021-11-30 17:20:12 +01:00
8efb5a885e Added working_directory parameter 2021-11-30 17:18:31 +01:00
sksat
b90e27731a fix: handle space in changed file name 2021-11-24 00:30:10 +09:00
b1dc9cd3b3 Merge pull request #67 from AndyA/master
Don't delete package-lock.json
2021-10-31 15:06:10 +01:00
61783f508e Merge pull request #69 from insyri/master
Commit Description Option
2021-10-22 17:55:05 +02:00
insyri
902197aeb2 typo fix in README 2021-10-22 09:04:15 -04:00
insyri
39357d386a added $INPUT_COMMIT_DESCRIPTION to entrypoint.sh
im unfamiliar with shell so this is what i did with some research, the inline if statement is just a personal design/formatting choice.
2021-10-22 09:03:21 -04:00
insyri
6296a68dfd added commit-description as option to action.yml 2021-10-22 08:52:00 -04:00
insyri
23135339e3 added commit-description as option in README 2021-10-22 08:49:41 -04:00
Andy Armstrong
a6d8de1638 Don't delete package-lock.json 2021-10-19 13:42:28 +01:00
Lance Hasson
762be84685 use 'main' instead of 'master' for examples 2021-09-21 09:17:32 -07:00
0b655e298c Merge pull request #48 from creyD/dev
Major Update 4.0
2021-09-07 17:54:54 +02:00
9ff7c1dce3 Added new version 2021-09-07 17:49:12 +02:00
c392c4f7c2 Merge pull request #57 from hpedrorodrigues/main
Small fixes for branch dev
2021-09-07 17:39:06 +02:00
67f2a40bcd Added dry run example 2021-09-07 17:36:14 +02:00
Pedro Rodrigues
6c9f8f188e Displaying prettier error when a glob doesn't match any files 2021-06-21 23:05:35 -03:00
Pedro Rodrigues
8002e3525b Making variable INPUT_PUSH_OPTIONS not required 2021-06-21 23:04:49 -03:00
Pedro Rodrigues
c97500dd80 Checking if generated files exist before trying to delete them 2021-06-21 23:03:58 -03:00
Pedro Rodrigues
aeab4259d8 Adding missing environment variable INPUT_GITHUB_TOKEN 2021-06-21 23:00:56 -03:00
a9bef1b515 Merge pull request #56 from hpedrorodrigues/override-token
Add support to override the default github token
2021-06-17 00:22:12 +02:00
654f901ff9 Merge branch 'dev' into override-token 2021-06-17 00:21:33 +02:00
Pedro Rodrigues
4f318753d5 Add support to override the default github token 2021-06-16 19:08:28 -03:00
ba482bbb2a Merge pull request #49 from fsz-codeshop/issue-37-dry-run-reporting-unpretty
Fixes Issues from PR #46 (37 [BUG] Dry run reporting unpretty files when all files match styles)
2021-05-21 09:48:38 +02:00
426f319c74 Merge branch 'dev' into issue-37-dry-run-reporting-unpretty 2021-05-21 09:48:29 +02:00
bb9aa745eb Merge pull request #53 from stevelacy/master
Add input git push options
2021-05-21 09:46:51 +02:00
Steve Lacy
707db76837 Add input git push options 2021-05-20 09:39:31 -10:00
7040c46162 Merge pull request #51 from fschoenfeldt/patch-1
Update README.md
2021-05-11 10:38:56 +02:00
Frederik Schönfeldt
672408b1db Update README.md
Use latest action version in example :-)
2021-05-10 18:01:39 +02:00
Fabricio Sander
634a3d2075 fix: changes the logic to handle dry-run with --write option and corrects the logic as it will never have changes on dry-run 2021-04-13 16:34:40 -03:00
d9d644ab69 Merge pull request #44 from suda/master
Allow unofficial plugins
2021-04-10 16:14:00 +02:00
0b7e2710f2 Merge branch 'dev' into master 2021-04-10 16:13:21 +02:00
fd9337d75f Merge pull request #46 from fsz-codeshop/issue-37-dry-run-reporting-unpretty
Fixes Issue #37 [BUG] Dry run reporting unpretty files when all files match styles
2021-04-10 16:10:33 +02:00
Fabricio Sander
c2e2730594 fix: fixes codefactor recommendation 2021-03-25 21:56:57 -03:00
Fabricio Sander
2069f26b6e other: improves the log output by not having and out of range message 2021-03-25 21:36:51 -03:00
Fabricio Sander
5b4a6a0183 docs: note about using --check on options to help in dry running 2021-03-25 21:34:44 -03:00
Fabricio Sander
3d912f60d1 fix: added variable declaration 2021-03-25 21:28:17 -03:00
Fabricio Sander
67234beef0 other: testing approach with multiple commands on fail 2021-03-25 21:21:06 -03:00
Fabricio Sander
2602a7aad8 other: testing approach using pipefail 2021-03-25 21:10:04 -03:00
Fabricio Sander
341259c9e6 other: testing another approach to handle both cases 2021-03-25 20:59:41 -03:00
Fabricio Sander
70f47fbe7e fix: fixes handling of bad case where there are unpretty files and command output is not 0 2021-03-25 20:50:30 -03:00
Fabricio Sander
217be60a6a fix: removes code block added by mistake from dev branch 2021-03-25 20:22:03 -03:00
Fabricio Sander
0e4ccc84cf style: fixes log message 2021-03-25 20:13:05 -03:00
Fabricio Sander
b40e4ba1c8 fix(issue-37): adds logic to handle prettier cmd output to shell dry-run exit 2021-03-25 20:11:57 -03:00
87e1553a82 Merge pull request #40 from jsoref/glob
Handle bash globs
2021-03-01 22:57:32 +01:00
bc1e95cc30 Adjusted the prettier_plugins variable to documentation 2021-03-01 15:20:54 +01:00
53d0f90f4e Update README.md 2021-03-01 15:18:08 +01:00
6438b32926 Merge pull request #45 from infotexture/fix/plugin-syntax
Fix plugin name syntax in README & description
2021-03-01 14:58:03 +01:00
Roger Sheen
6c3c102255 Fix plugin name syntax in README & description
The entrypoint script checks for correctly named Prettier plugins on [lines 44–45](https://github.com/creyD/prettier_action/blob/master/entrypoint.sh#L44-L45), but the description in the config file and README are not consistent.

This updates those references to clarify how plugins should be specified.
2021-03-01 00:25:35 +01:00
Wojtek Siudzinski
e81db121ba Allow unofficial plugins 2021-02-28 11:16:39 +01:00
Josh Soref
d48a703bcd Handle bash globs
The previous system relied on a different shell's magic for handling `*` / `**`

nullglob
- If set, Bash allows filename patterns which match no files to expand to a null string, rather than themselves.

globstar
- If set, the pattern ‘**’ used in a filename expansion context will match all files and zero or more directories and subdirectories. If the pattern is followed by a ‘/’, only directories and subdirectories match.
2021-02-19 14:56:06 -05:00
a0331d2149 Merge pull request #39 from creyD/dev_composite
Moved the action to composite
2021-02-19 20:47:50 +01:00
b81496839a Adjusted exception message and finalized changes 2021-02-19 19:18:23 +01:00
1f62e028b6 Added exceptions to improve stability 2021-02-19 19:16:25 +01:00
5e56c64388 Another try at bugfixing the ignore mechanism 2021-02-19 19:13:29 +01:00
7d4939bf14 Another try at bugfixing the ignore mechanism 2021-02-19 19:09:45 +01:00
19d31cb263 Another try at bugfixing the ignore mechanism 2021-02-19 19:07:12 +01:00
c9d8181bcf Moved ignore part to before git checks changed 2021-02-19 19:04:18 +01:00
f4e4fcde26 Added .gitignore to exclusion - for real II 2021-02-19 18:56:55 +01:00
1a89f28d0f Added .gitignore to exclusion - for real 2021-02-19 18:54:40 +01:00
172c413f01 Added .gitignore exclusion 2021-02-19 18:51:11 +01:00
9acb5d89b9 Still debugging ignoring 2021-02-19 18:47:01 +01:00
77af303189 Bugfixing ignore mechanism 2021-02-19 18:44:35 +01:00
5564e3ef42 Updating ignore mechanism 2 2021-02-19 18:41:32 +01:00
c5dd36440f Updating the ignore mechanism 2021-02-19 18:40:27 +01:00
3b82dd7e95 Fixed missing command 2021-02-19 18:36:38 +01:00
01e9c566d8 Trying to exclude the useless package files 2021-02-19 18:31:20 +01:00
35d0d93afd Removed global parameter 2021-02-19 18:19:17 +01:00
857bc257e2 Added missing bracket 2021-02-19 18:15:37 +01:00
4d25f0bd7c Moving the path to the run part of the yml 2021-02-19 18:13:22 +01:00
5c365ab3fa Another bugfix attempt trying to generate the global flag only if needed 2021-02-19 18:10:42 +01:00
b5409d48a9 Removed global option for testing 2021-02-19 18:02:12 +01:00
5f9fa33c3d Fixed variable problem 2021-02-19 17:58:30 +01:00
3aa6d7608d Added testing variable 2021-02-19 17:54:00 +01:00
8a68c5b4d3 Experimenting with a simpler form of composite actions 2021-02-19 17:45:52 +01:00
45863b1eb1 Merge pull request #38 from jsoref/composite
Composite
2021-02-19 17:35:23 +01:00
Josh Soref
7326fa4da4 Switch to composite 2021-02-19 00:49:40 -05:00
Josh Soref
e338a630e6 Tag entrypoint as a bash script
This script uses bashisms
2021-02-19 00:49:16 -05:00
cb975d8aad Merge pull request #36 from creyD/dev
New prettier-plugin feature
2021-01-10 21:38:08 +01:00
acf2e1f70b Added new plugin feature to documentation 2021-01-10 21:37:50 +01:00
ad03b42b19 Merge pull request #34 from sebastianks/feature-add-plugins
Feature add plugins
2021-01-10 21:07:23 +01:00
a20371f2d2 Slightly adjusted the printed messages 2021-01-10 21:04:03 +01:00
Sebastian Kolind Sørensen
2b4b2c18e7 Merge pull request #5 from sebastianks/master
Add regex check of plugin names
2021-01-10 17:55:52 +01:00
Sebastian Kolind Sørensen
8d84d9c9f2 Merge branch 'feature-add-plugins' into master 2021-01-10 17:55:45 +01:00
Sebastian Kolind Sørensen
c0b1f6f05a Merge pull request #4 from sebastianks/check-plugin-name
Change to sh regex
2021-01-10 17:50:44 +01:00
Sebastian K. Sorensen
bb1392436f Change to sh regex 2021-01-10 17:49:20 +01:00
Sebastian Kolind Sørensen
d8e72fc127 Merge pull request #3 from sebastianks/check-plugin-name
Fix regex issue
2021-01-10 17:41:59 +01:00
Sebastian K. Sorensen
75b0a4fda5 Fix regex issue 2021-01-10 17:40:38 +01:00
Sebastian Kolind Sørensen
bb1dafe218 Merge pull request #2 from sebastianks/check-plugin-name
Fix issue with if statement
2021-01-10 16:43:23 +01:00
Sebastian K. Sorensen
33b1eff486 Fix issue with if statement 2021-01-10 16:41:47 +01:00
Sebastian Kolind Sørensen
72b033eda5 Merge pull request #1 from sebastianks/check-plugin-name
Attempt of checking plugin name with regex
2021-01-10 16:38:50 +01:00
Sebastian K. Sorensen
656daa9f97 Attempt of checking plugin name with regex 2021-01-10 16:07:31 +01:00
Sebastian K. Sorensen
1015fa1aaf Use quotes when using [ 2021-01-10 15:57:48 +01:00
Sebastian K. Sorensen
0faaf9bad1 Use POSIX brackets instead 2021-01-10 15:57:13 +01:00
Sebastian K. Sorensen
a35b5cc1cb Change default to empty string instead 2021-01-10 15:50:05 +01:00
Sebastian K. Sorensen
b7cf1dc4c2 Change action name to regular one 2021-01-10 15:32:37 +01:00
Sebastian K. Sorensen
f852cea42f Change check of variable 2021-01-10 14:52:20 +01:00
Sebastian K. Sorensen
7ea4328121 Adds a unique name to action 2021-01-10 14:35:53 +01:00
Sebastian K. Sorensen
193559158f Attempt to add prettier_plugins 2021-01-10 14:22:14 +01:00
34cc6fde0a Merge pull request #33 from spawnia/patch-1
Remove branch parameter from docs
2021-01-07 07:55:13 +01:00
Benedikt Franke
03caf85843 Remove branch parameter from docs 2021-01-07 00:56:18 +01:00
bb361e2979 Merge pull request #32 from J-Fields/exclude-deleted-files
Exclude deleted files when using `only_changed`
2020-12-17 17:03:39 +01:00
Jason Fields
ce4e1eba94 Exclude deleted files when using only_changed
Fixes #31
2020-11-20 17:20:46 -05:00
b0b067ff52 Fixed typo in README 2020-11-11 10:33:48 +01:00
269c9b08c9 Merge pull request #30 from stemount/patch-1
Bump version of README to `prettier_action@v3.1`
2020-11-10 20:34:58 +01:00
Stephen Mount
6f7d0221d4 Bump version of README to prettier_action@v3.1 2020-11-10 12:51:38 +00:00
394fa2de3b Merge pull request #29 from creyD/dev
Update for 3.1 release
2020-10-23 11:02:55 +02:00
de263be475 Merge pull request #28 from Hans5958/patch-1
Unified formatting on readme table
2020-10-23 10:57:42 +02:00
Hans5958
cafb23058e Proper formatting on parameter table 2020-10-23 10:39:25 +07:00
cf1aa3d38d Merge pull request #23 from creyD/dev
Added only_changed and update_commit features
2020-10-19 16:33:50 +02:00
173a5890f7 Improved documentation for latest release 2020-10-18 19:15:33 +02:00
fc18abc0ba Merge pull request #27 from jorenbroekema/fix/commit
fix: add commit and push logic after git add logic
2020-10-18 15:10:33 +02:00
jorenbroekema
30127fcc3c fix: add commit and push logic after git add logic 2020-10-18 14:26:33 +02:00
e0055a4878 Merge pull request #26 from jorenbroekema/fix/same-commit
Bugfix: Force pushing when using same_commit
2020-10-17 22:36:08 +02:00
jorenbroekema
3c5eb02712 fix: force push when using same_commit option since we amend 2020-10-17 21:50:28 +02:00
b3e1246472 Removed force push because of extreme danger 2020-10-17 21:04:19 +02:00
a3fd60656c Readded pull for bugfixing 2020-10-17 21:02:01 +02:00
fde6ec771e Testing with force push option 2020-10-17 20:44:21 +02:00
96faaba8df Testing with asterix add 2020-10-17 20:27:01 +02:00
25af1e5a4b Testing with git pull option 2020-10-17 20:12:34 +02:00
6024a801da Readded no-edit option for bugfixing 2020-10-17 20:05:03 +02:00
bf27e9d676 Moved git amend before git add 2020-10-17 20:01:43 +02:00
39ff9b668e Revert "Attempt on bugfixing the new same_commit option"
This reverts commit bb4a636946.
2020-10-17 19:53:43 +02:00
bb4a636946 Attempt on bugfixing the new same_commit option 2020-10-17 14:28:22 +02:00
3c71a9826d Improved documentation of the new same_commit feature 2020-10-17 14:25:22 +02:00
63b1ca9669 Merge pull request #24 from jorenbroekema/feat/same-commit
feat: allow action to use current commit instead of creating a new one
2020-10-17 14:11:45 +02:00
c343fb81ed Merge branch 'dev' into feat/same-commit 2020-10-17 14:10:18 +02:00
jorenbroekema
6ad77586cd feat: allow action to use current commit instead of creating a new one 2020-10-16 12:33:51 +02:00
00252f6732 Added example for new only_changed option 2020-10-16 09:43:47 +02:00
2950e4532b Added exception for empty commits 2020-10-16 09:33:01 +02:00
824711396f Improved example code 2020-10-16 09:32:45 +02:00
5cea39febe Added only_changed feature 2020-10-16 09:15:41 +02:00
ea3e74cc2d Removed apt upgrade 2020-07-25 15:30:41 +02:00
71bcaf6210 Merge pull request #15 from creyD/dev
Updated docs
2020-05-04 13:59:00 +02:00
29a6b692fd Merge branch 'master' into dev 2020-05-04 13:58:53 +02:00
b09ae6a0d6 Updated docs 2020-05-04 13:56:28 +02:00
073a0f8b6e Merge pull request #14 from creyD/dev
Removed branch parameter + Bugfix for prettier_version
2020-05-04 13:51:51 +02:00
0ba5bcfc18 Fix for the PRETTIER_VERSION problems 2020-05-04 11:52:58 +02:00
5daa695f24 Merge pull request #13 from spawnia/patch-1
Simplify configuration example
2020-04-27 18:19:33 +02:00
bbeb9af617 Removed $INPUT_BRANCH completely 2020-04-27 18:15:56 +02:00
8d0861a178 Removed branching parameter for testing 2020-04-27 17:25:13 +02:00
Benedikt Franke
c45684605c Add example config option 2020-04-26 23:22:24 +02:00
Benedikt Franke
638e44576b Simplify configuration example 2020-04-26 23:16:40 +02:00
b5eb80d2a9 Added default for prettier_version 2020-04-16 18:20:54 +02:00
8295f2c348 Merge pull request #11 from creyD/dev_version
Added npm Version Selection
2020-03-24 10:07:02 +01:00
897359d7a2 Update entrypoint.sh 2020-03-24 10:00:40 +01:00
65e822b2f3 New Parameter Defaults To Null 2020-03-24 09:56:43 +01:00
565d7a7458 Attempt 2 on fixing the bug with the new version parameter 2020-03-24 09:51:18 +01:00
66441c9ff3 Fixed bug with new version parameter 2020-03-24 09:46:35 +01:00
28d6dc7fe1 Merge pull request #10 from creyD/dev_badges
Stepped Up Badge Game
2020-03-24 00:28:16 +01:00
158b31956c Stepped Up Badge Game 2020-03-24 00:26:22 +01:00
e0fb4eb439 Added prettier_version parameter 2020-03-24 00:15:08 +01:00
d8862e43c9 Added Prettier Badge to Readme 2020-03-24 00:10:16 +01:00
857b4b338e Bumped other version in Readme 2020-03-20 17:44:02 +01:00
0c51fd6dc9 Merge pull request #7 from TomBarta/patch-1
Update README to match latest version
2020-03-20 17:39:29 +01:00
Tom Barta
9bca767580 Update README to match latest version 2020-03-20 10:28:35 -06:00
0d1a062a13 Marked Importance 2020-03-18 11:12:34 +01:00
8790b043b6 Added documentation for dry option 2020-03-16 16:03:20 +01:00
527f15c634 Added hard break for dry mode 2020-03-16 15:55:22 +01:00
eebcf202ff Removed prettier catch 2020-03-16 15:48:20 +01:00
fc801e7c7a Fixed a bug with new dry option 2020-03-16 15:36:25 +01:00
03018818a5 Added dry mode 2020-03-16 15:30:17 +01:00
8bd9c88a06 Improved README and Code 2020-02-19 12:16:39 +01:00
7224bd5fbf Reworked YML config 2020-02-18 07:34:38 +01:00
26a255a4eb Added on push example 2020-02-18 07:28:35 +01:00
d79f66cca4 Update README.md 2020-02-17 23:18:45 +01:00
209ad3c789 Fixed Incorrect Intend 2020-02-17 23:08:15 +01:00
d74bf2230e Readded netrc file 2020-02-17 23:05:16 +01:00
c8eaee63f1 Fixed Naming Mistake 2020-02-17 23:02:27 +01:00
b8682e0294 Improved Stability of Pushing
- Updated code from the template I used
2020-02-17 22:42:00 +01:00
c4e0bcd525 Update entrypoint.sh 2020-02-17 10:47:10 +01:00
426bb27465 Update entrypoint.sh 2020-02-17 10:38:41 +01:00
45f4ad477d [TESTING] Added git fetch for optimal operation 2020-02-17 09:38:17 +01:00
eb409200dc Update README.md 2020-01-29 09:39:04 +01:00
de10b82cf3 Fixed error "Git not found" 2020-01-27 13:33:30 +01:00
5fce4532d5 Added CodeFactor Badge 2020-01-24 22:40:20 +01:00
61210d785e Pinned Docker Version 2020-01-24 22:39:32 +01:00
5 changed files with 324 additions and 71 deletions

View File

@@ -1,3 +0,0 @@
FROM node:latest
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020 Conrad
Copyright (c) 2020 Conrad Großer
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -14,7 +14,7 @@ copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

152
README.md
View File

@@ -1,5 +1,13 @@
# GitHub Prettier Action
[![CodeFactor](https://www.codefactor.io/repository/github/creyd/prettier_action/badge/master)](https://www.codefactor.io/repository/github/creyd/prettier_action/overview/master)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![License MIT](https://img.shields.io/github/license/creyD/prettier_action)](https://github.com/creyD/prettier_action/blob/master/LICENSE)
[![Latest Release](https://img.shields.io/github/v/release/creyD/prettier_action)](https://github.com/creyD/prettier_action/releases)
[![Contributors](https://img.shields.io/github/contributors-anon/creyD/prettier_action)](https://github.com/creyD/prettier_action/graphs/contributors)
[![Issues](https://img.shields.io/github/issues/creyD/prettier_action)](https://github.com/creyD/prettier_action/issues)
A GitHub action for styling files with [prettier](https://prettier.io).
## Usage
@@ -8,41 +16,143 @@ A GitHub action for styling files with [prettier](https://prettier.io).
| Parameter | Required | Default | Description |
| - | :-: | :-: | - |
| prettier_options | :x: | --write **/*.js | Prettier options (by default it applies to the whole repository) |
| commit_options | :x: | No options. | Custom git commit options |
| commit_message | :x: | Prettified Code! | Custom git commit message |
| file_pattern | :x: | * | Custom git add file pattern |
| branch | :white_check_mark: | - | Custom git publish branch, use ${{ github.head_ref }} if used in pull requests |
| dry | :x: | `false` | Runs the action in dry mode. Files wont get changed and the action fails if there are unprettified files. Recommended to use with prettier_options --check |
| prettier_version | :x: | `false` | Specific prettier version (by default use latest) |
| working_directory | :x: | `false` | Specify a directory to cd into before installing prettier and running it, use relative file path to the repository root for example `app/` |
| prettier_options | :x: | `"--write **/*.js"` | Prettier options (by default it applies to the whole repository) |
| commit_options | :x: | - | Custom git commit options |
| push_options | :x: | - | Custom git push options |
| same_commit | :x: | `false` | Update the current commit instead of creating a new one, created by [Joren Broekema](https://github.com/jorenbroekema), this command works only with the checkout action set to fetch depth '0' (see example 2) |
| commit_message | :x: | `"Prettified Code!"` | Custom git commit message, will be ignored if used with `same_commit` |
| commit_description | :x: | - | Custom git extended commit message, will be ignored if used with `same_commit` |
| file_pattern | :x: | `*` | Custom git add file pattern, can't be used with only_changed! |
| prettier_plugins | :x: | - | Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other` |
| only_changed | :x: | `false` | Only prettify changed files, can't be used with file_pattern! This command works only with the checkout action set to fetch depth '0' (see example 2)|
| github_token | :x: | `${{ github.token }}` | The default [GITHUB_TOKEN](https://docs.github.com/en/actions/reference/authentication-in-a-workflow#about-the-github_token-secret) or a [Personal Access Token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)
> Note: using the same_commit option may lead to problems if other actions are relying on the commit being the same before and after the prettier action has ran. Keep this in mind.
### Example Config
This is a small example of what your `action.yml` could look like:
> Hint: if you still use the old naming convention or generally a different branch name, please replace the `main` in the following configurations.
#### Example 1 (run on push in branch main)
```yaml
name: Prettier for JS Code
name: Continuous Integration
on: [pull_request]
# This action works with pull requests and pushes
on:
pull_request:
push:
branches:
- main
jobs:
cleanup_tasks:
prettier:
runs-on: ubuntu-latest
steps:
- name: Cloning the repository
uses: actions/checkout@v1
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Prettify the JS Code
uses: creyD/prettier_action@v1.0
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.head_ref }}
- name: Prettify code
uses: creyD/prettier_action@v4.1
with:
prettier_options: '--no-semi --write src/**/*.js'
branch: ${{ github.head_ref }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md}
```
This simple example executes `prettier --no-semi --write src/**/*.js` after someone created a Pull Request on your repository. More documentation can be found [here](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions).
#### Example 2 (using the only_changed or same_commit option on PR)
```yaml
name: Continuous Integration
on:
pull_request:
branches: [main]
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.head_ref }}
# This is important to fetch the changes to the previous commit
fetch-depth: 0
- name: Prettify code
uses: creyD/prettier_action@v4.1
with:
# This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md}
only_changed: True
```
#### Example 3 (using a custom access token on PR)
```yaml
name: Continuous Integration
on:
pull_request:
branches: [main]
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
# Make sure the value of GITHUB_TOKEN will not be persisted in repo's config
persist-credentials: false
- name: Prettify code
uses: creyD/prettier_action@v4.1
with:
prettier_options: --write **/*.{js,md}
only_changed: True
# Set your custom token
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
```
#### Example 4 (dry run)
```yaml
name: Continuous Integration
on:
pull_request:
branches: [main]
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
# Make sure the value of GITHUB_TOKEN will not be persisted in repo's config
persist-credentials: false
- name: Prettify code
uses: creyD/prettier_action@v4.1
with:
dry: True
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
```
More documentation for writing a workflow can be found [here](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions).
## Issues
Please report all bugs and feature request using the [GitHub issues function](https://github.com/creyD/prettier_action/issues/new).
Please report all bugs and feature request using the [GitHub issues function](https://github.com/creyD/prettier_action/issues/new). Thanks!

View File

@@ -1,37 +1,81 @@
name: "Prettier Action"
description: "Automatically runs prettier on all your pull requests."
name: Prettier Action
description: Automatically runs prettier on all your changes.
author: Conrad Großer <grosserconrad@gmail.com>
inputs:
commit_message:
description: Commit message
description: Commit message, will be ignored if used with same_commit
required: false
default: "Prettified Code!"
commit_description:
description: Extended commit message, will be ignored if used with same_commit
required: false
default: ""
same_commit:
description: Update the current commit instead of creating a new one
required: false
default: false
commit_options:
description: Commit options
required: false
push_options:
description: Git push 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:
description: Options for the 'prettier' command
description: Options for the `prettier` command
required: false
default: "--write **/*.js"
branch:
description: Branch which the changes are merged to
required: true
dry:
description: Running the script in dry mode just shows whether there are files that should be prettified or not
required: false
default: false
prettier_version:
description: Specific version of prettier (by default just use the latest version)
required: false
default: false
working_directory:
description: Specify a directory to cd into before installing prettier and running it
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
prettier_plugins:
description: Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other`
required: false
default: ""
github_token:
description: GitHub Token or PAT token used to authenticate against a repository
required: false
default: ${{ github.token }}
runs:
using: "docker"
image: "Dockerfile"
args:
- ${{ inputs.commit_message }}
- ${{ inputs.commit_options }}
- ${{ inputs.file_pattern }}
- ${{ inputs.prettier_options }}
- ${{ inputs.branch }}
using: "composite"
steps:
- name: Prettify code!
shell: bash
run: >-
PATH=$(cd $GITHUB_ACTION_PATH; npm bin):$PATH
${{ github.action_path }}/entrypoint.sh
env:
INPUT_COMMIT_MESSAGE: ${{ inputs.commit_message }}
INPUT_COMMIT_DESCRIPTION: ${{ inputs.commit_description }}
INPUT_SAME_COMMIT: ${{ inputs.same_commit }}
INPUT_COMMIT_OPTIONS: ${{ inputs.commit_options }}
INPUT_FILE_PATTERN: ${{ inputs.file_pattern }}
INPUT_PRETTIER_OPTIONS: ${{ inputs.prettier_options }}
INPUT_DRY: ${{ inputs.dry }}
INPUT_PRETTIER_VERSION: ${{ inputs.prettier_version }}
INPUT_ONLY_CHANGED: ${{ inputs.only_changed }}
INPUT_PRETTIER_PLUGINS: ${{ inputs.prettier_plugins }}
INPUT_WORKING_DIRECTORY: ${{ inputs.working_directory }}
INPUT_GITHUB_TOKEN: ${{ inputs.github_token }}
branding:
icon: "award"

View File

@@ -1,41 +1,143 @@
#!/bin/sh
# e is for exiting the script automatically if a command fails, u is for exiting if a variable is not set, x is for showing the commands before they are executed
set -eux
#!/bin/bash
# e is for exiting the script automatically if a command fails, u is for exiting if a variable is not set
# x would be for showing the commands before they are executed
set -eu
shopt -s globstar
# FUNCTIONS
# Function for setting up git env in the docker container (copied from https://github.com/stefanzweifel/git-auto-commit-action/blob/master/entrypoint.sh)
git_setup ( ) {
cat <<- EOF > $HOME/.netrc
machine github.com
login $GITHUB_ACTOR
password $GITHUB_TOKEN
machine api.github.com
login $GITHUB_ACTOR
password $GITHUB_TOKEN
_git_setup ( ) {
cat <<- EOF > $HOME/.netrc
machine github.com
login $GITHUB_ACTOR
password $INPUT_GITHUB_TOKEN
machine api.github.com
login $GITHUB_ACTOR
password $INPUT_GITHUB_TOKEN
EOF
chmod 600 $HOME/.netrc
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
git config --global user.name "GitHub Action"
}
echo "Installing prettier..."
npm install --silent --global prettier
echo "Prettifing files..."
prettier $INPUT_PRETTIER_OPTIONS || echo "Problem while prettifying your files!"
# Checks if any files are changed
_git_changed() {
[[ -n "$(git status -s)" ]]
}
if ! git diff --quiet
then
echo "Commiting and pushing changes..."
# Calling method to configure the git environemnt
git_setup
# Switch to the actual branch
git checkout $INPUT_BRANCH
# Add changes to git
git add "${INPUT_FILE_PATTERN}"
# 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 --set-upstream origin "HEAD:$INPUT_BRANCH"
echo "Changes pushed successfully."
_git_changes() {
git diff
}
(
# PROGRAM
# Changing to the directory
cd "$GITHUB_ACTION_PATH"
echo "Installing prettier..."
case $INPUT_WORKING_DIRECTORY in
false)
;;
*)
cd $INPUT_WORKING_DIRECTORY
;;
esac
case $INPUT_PRETTIER_VERSION in
false)
npm install --silent prettier
;;
*)
npm install --silent prettier@$INPUT_PRETTIER_VERSION
;;
esac
# Install plugins
if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then
for plugin in $INPUT_PRETTIER_PLUGINS; do
echo "Checking plugin: $plugin"
# check regex against @prettier/xyz
if ! echo "$plugin" | grep -Eq '(@prettier\/)+(plugin-[a-z\-]+)'; then
echo "$plugin does not seem to be a valid @prettier/plugin-x plugin. Exiting."
exit 1
fi
done
npm install --silent --global $INPUT_PRETTIER_PLUGINS
fi
)
PRETTIER_RESULT=0
echo "Prettifying files..."
echo "Files:"
prettier $INPUT_PRETTIER_OPTIONS \
|| { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; }
# Ignore node modules and other action created files
if [ -d 'node_modules' ]; then
rm -r node_modules/
else
echo "No node_modules/ folder."
fi
if [ -f 'package-lock.json' ]; then
git checkout -- package-lock.json
else
echo "No package-lock.json file."
fi
# To keep runtime good, just continue if something was changed
if _git_changed; then
# case when --write is used with dry-run so if something is unpretty there will always have _git_changed
if $INPUT_DRY; then
echo "Unpretty Files Changes:"
_git_changes
echo "Finishing dry-run. Exiting before committing."
exit 1
else
# Calling method to configure the git environemnt
_git_setup
if $INPUT_ONLY_CHANGED; then
# --diff-filter=d excludes deleted files
OLDIFS="$IFS"
IFS=$'\n'
for file in $(git diff --name-only --diff-filter=d HEAD^..HEAD)
do
git add "$file"
done
IFS="$OLDIFS"
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
if $INPUT_SAME_COMMIT; then
echo "Amending the current commit..."
git pull
git commit --amend --no-edit
git push origin -f
else
if [ "$INPUT_COMMIT_DESCRIPTION" != "" ]
then
git commit -m "$INPUT_COMMIT_MESSAGE" -m "$INPUT_COMMIT_DESCRIPTION" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} || echo "No files added to commit"
else
git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} || echo "No files added to commit"
fi
git push origin ${INPUT_PUSH_OPTIONS:-}
fi
echo "Changes pushed successfully."
fi
else
# case when --check is used so there will never have something to commit but there are unpretty files
if [ "$PRETTIER_RESULT" -eq 1 ]; then
echo "Prettier found unpretty files!"
exit 1
else
echo "Finishing dry-run."
fi
echo "No unpretty files!"
echo "Nothing to commit. Exiting."
fi