Skip to content

Commit

Permalink
Merge pull request #154 from stefanzweifel/fixes/153
Browse files Browse the repository at this point in the history
Add "disable_globbing" option to prevent shell from expanding filenames
  • Loading branch information
stefanzweifel committed Apr 12, 2021
2 parents be7095c + 3053f48 commit 4c05e3d
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 1 deletion.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@ This is a more extended example with all possible options.
skip_dirty_check: true

# Optional: Skip internal call to `git fetch`
skip_fetch: true
skip_fetch: true

# Optional: Prevents the shell from expanding filenames. Details: https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html
disable_globbing: true
```

## Example
Expand Down
3 changes: 3 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ inputs:
description: Skip the call to git-fetch.
required: false
default: false
disable_globbing:
description: Stop the shell from expanding filenames (https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html)
default: false

outputs:
changes_detected:
Expand Down
4 changes: 4 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

set -eu

if "$INPUT_DISABLE_GLOBBING"; then
set -o noglob;
fi

_main() {
_switch_to_repository

Expand Down
36 changes: 36 additions & 0 deletions tests/git-auto-commit.bats
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ setup() {
export INPUT_PUSH_OPTIONS=""
export INPUT_SKIP_DIRTY_CHECK=false
export INPUT_SKIP_FETCH=false
export INPUT_DISABLE_GLOBBING=false

# Configure Git
if [[ -z $(git config user.name) ]]; then
Expand Down Expand Up @@ -400,3 +401,38 @@ git_auto_commit() {

assert_equal $current_sha $remote_sha
}

@test "It does not expand wildcard glob when using INPUT_PATTERN and INPUT_DISABLE_GLOBBING in git-status and git-add" {

# Create additional files in a nested directory structure
echo "Create Additional files";
touch "${FAKE_LOCAL_REPOSITORY}"/new-file-a.py
mkdir "${FAKE_LOCAL_REPOSITORY}"/nested
touch "${FAKE_LOCAL_REPOSITORY}"/nested/new-file-b.py

# Commit changes
echo "Commit changes before running git_auto_commit";
cd "${FAKE_LOCAL_REPOSITORY}";
git add . > /dev/null;
git commit --quiet -m "Init Remote Repository";
git push origin master > /dev/null;

# Make nested file dirty
echo "foo-bar" > "${FAKE_LOCAL_REPOSITORY}"/nested/new-file-b.py;

# ---

INPUT_FILE_PATTERN="*.py"
INPUT_DISABLE_GLOBBING=true

run git_auto_commit

assert_success

assert_line "INPUT_FILE_PATTERN: *.py"
assert_line "::debug::Push commit to remote branch master"

# Assert that the updated py file has been commited.
run git status
refute_output --partial 'nested/new-file-b.py'
}

0 comments on commit 4c05e3d

Please sign in to comment.