diff --git a/action.yml b/action.yml index a4a8630..adb0fdf 100644 --- a/action.yml +++ b/action.yml @@ -48,6 +48,10 @@ inputs: description: Skip the check if the git repository is dirty and always try to create a commit. required: false default: false + skip_fetch: + description: Skip the call to git-fetch. + required: false + default: false outputs: changes_detected: diff --git a/entrypoint.sh b/entrypoint.sh index 42eadba..d1e0a72 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -41,7 +41,12 @@ _switch_to_branch() { echo "INPUT_BRANCH value: $INPUT_BRANCH"; # Fetch remote to make sure that repo can be switched to the right branch. - git fetch --depth=3; + + if "$INPUT_SKIP_FETCH"; then + echo "::debug::git-fetch has not been executed"; + else + git fetch --depth=3; + fi # Switch to branch from current Workflow run # shellcheck disable=SC2086 diff --git a/tests/git-auto-commit.bats b/tests/git-auto-commit.bats index ee381a9..963ad42 100644 --- a/tests/git-auto-commit.bats +++ b/tests/git-auto-commit.bats @@ -21,6 +21,7 @@ setup() { export INPUT_TAGGING_MESSAGE="" export INPUT_PUSH_OPTIONS="" export INPUT_SKIP_DIRTY_CHECK=false + export INPUT_SKIP_FETCH=false # Configure Git if [[ -z $(git config user.name) ]]; then @@ -297,3 +298,16 @@ git_auto_commit() { run git ls-remote --tags --refs assert_output --partial refs/tags/v2.0.0 } + +@test "If SKIP_FETCH is true git-fetch will not be called" { + + touch "${FAKE_LOCAL_REPOSITORY}"/new-file-{1,2,3}.txt + + INPUT_SKIP_FETCH=true + + run git_auto_commit + + assert_success + + assert_line "::debug::git-fetch has not been executed" +}