Fail if attempting to execute git commands in a directory that is not a git-repo. (#326)
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Lint Code Base / Lint Code Base (push) Failing after 4s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Lint Code Base / Lint Code Base (push) Failing after 4s
				
			* Fail (and log message) if attempting to execute git commands in a directory that is not a git-repo. * Add Test * Code Formatting --------- Co-authored-by: Constantin Comendant <constantin@uberagent.com> Co-authored-by: Stefan Zweifel <stefan@stefanzweifel.dev>
This commit is contained in:
		
							parent
							
								
									b0f4d47f59
								
							
						
					
					
						commit
						8621497c8c
					
				| @ -82,8 +82,15 @@ _git_is_dirty() { | ||||
|     echo "INPUT_FILE_PATTERN: ${INPUT_FILE_PATTERN}"; | ||||
|     read -r -a INPUT_FILE_PATTERN_EXPANDED <<< "$INPUT_FILE_PATTERN"; | ||||
| 
 | ||||
|     # capture stderr | ||||
|     gitStatusMessage="$((git status -s $INPUT_STATUS_OPTIONS -- ${INPUT_FILE_PATTERN_EXPANDED:+${INPUT_FILE_PATTERN_EXPANDED[@]}} >/dev/null ) 2>&1)"; | ||||
|     # shellcheck disable=SC2086 | ||||
|     [ -n "$(git status -s $INPUT_STATUS_OPTIONS -- ${INPUT_FILE_PATTERN_EXPANDED:+${INPUT_FILE_PATTERN_EXPANDED[@]}})" ] | ||||
|     gitStatus="$(git status -s $INPUT_STATUS_OPTIONS -- ${INPUT_FILE_PATTERN_EXPANDED:+${INPUT_FILE_PATTERN_EXPANDED[@]}})"; | ||||
|     if [ $? -ne 0 ]; then | ||||
|         _log "error" "git-status failed with:<$gitStatusMessage>"; | ||||
|         exit 1; | ||||
|     fi | ||||
|     [ -n "$gitStatus" ] | ||||
| } | ||||
| 
 | ||||
| _switch_to_branch() { | ||||
|  | ||||
| @ -8,6 +8,7 @@ setup() { | ||||
|     export FAKE_LOCAL_REPOSITORY="${BATS_TEST_DIRNAME}/tests_local_repository" | ||||
|     export FAKE_REMOTE="${BATS_TEST_DIRNAME}/tests_remote_repository" | ||||
|     export FAKE_TEMP_LOCAL_REPOSITORY="${BATS_TEST_DIRNAME}/tests_clone_of_remote_repository" | ||||
|     export FAKE_FOLDER_WITHOUT_GIT_REPO="/tmp/tests_folder_without_git_repo" | ||||
| 
 | ||||
|     # While it is likely the GitHub hosted runners will use master as the default branch, | ||||
|     # locally anyone may change that. So for tests lets grab whatever is currently set | ||||
| @ -58,6 +59,7 @@ teardown() { | ||||
|     rm -rf "${FAKE_LOCAL_REPOSITORY}" | ||||
|     rm -rf "${FAKE_REMOTE}" | ||||
|     rm -rf "${FAKE_TEMP_LOCAL_REPOSITORY}" | ||||
|     rm -rf "${INPUT_REPOSITORY}" | ||||
| 
 | ||||
|     if [ -z ${GITHUB_OUTPUT+x} ]; then | ||||
|         echo "GITHUB_OUTPUT is not set" | ||||
| @ -1112,3 +1114,14 @@ END | ||||
|     run git log -n 1 | ||||
|     assert_output --partial $COMMIT_MESSAGE | ||||
| } | ||||
| 
 | ||||
| @test "It exits with error message if entrypoint.sh is being run not in a git repository" { | ||||
|     INPUT_REPOSITORY="${FAKE_FOLDER_WITHOUT_GIT_REPO}" | ||||
| 
 | ||||
|     mkdir "${INPUT_REPOSITORY}" | ||||
| 
 | ||||
|     run git_auto_commit | ||||
| 
 | ||||
|     assert_failure; | ||||
|     assert_line "::error::git-status failed with:<fatal: not a git repository (or any of the parent directories): .git>" | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user