From a9021d53592e88e13cf7dba2fb9fd3bab07156fc Mon Sep 17 00:00:00 2001 From: Stefan Zweifel Date: Sun, 13 Dec 2020 09:31:16 +0100 Subject: [PATCH] Add skip_fetch input option This new option will allow users to skip the execution of `git fetch` if it has a negative impact in their workflows. In a future PR I will probably remove the call to git-fetch interely. It was added in #108 in relation to a problem with slashes in branch names. That problem wasn't properly fixed though. --- action.yml | 4 ++++ entrypoint.sh | 7 ++++++- tests/git-auto-commit.bats | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) 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" +}