From 05d43d548a10b2903380bf3c6f8150444d99b3ee Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Wed, 31 Jan 2024 16:00:39 +1300 Subject: [PATCH] ENH Copy files that failed git diff to artifacts dir --- action.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/action.yml b/action.yml index 39e91f9..5e25d10 100644 --- a/action.yml +++ b/action.yml @@ -218,11 +218,24 @@ runs: echo "git diff found modified files when it should not have:" echo $GIT_DIFF echo "sha1sum of files that are different:" + COPIED_COUNT=0 for FILEPATH in $(git diff --cached --name-only); do if [[ -f $FILEPATH ]]; then sha1sum $FILEPATH + # Only copy if the file is less than 10 megabytes to prevent malicous behaviour + # Only copy a max of 10 files, also to prevent malicious behaviour + MEGABYTES=$(ls -l --b=M "$DIST_DIR/$FILEPATH" | cut -d " " -f5 | sed "s/M//") + if (($MEGABYTES >= 10)); then + echo "File $FILEPATH is larger than 10 megabytes, not copying" + elif (($COPIED_COUNT >= 10)); then + echo "More than 10 files have been copied, not copying $FILEPATH" + else + cp "$DIST_DIR/$FILEPATH" artifacts + COPIED_COUNT=$((COPIED_COUNT+1)) + fi fi done + echo "Files that are different have been copied to artifacts directory" exit 1 fi fi