Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- NOT_GIT_REPO=1
- if $(git rev-list --all &>/dev/null)
- then
- echo "Detect git repo, continue now..."
- else
- echo "Could not find any git repo here!"
- exit $NOT_GIT_REPO
- fi
- mkdir -p tmp/
- THREADS=20
- DATETIME="$(date '+%Y-%m-%dT%H:%M:%S')"
- REPORT_FILE_NAME="tmp/git-report_$DATETIME.omg"
- echo "CREATED AT: $(date)" > $REPORT_FILE_NAME
- echo "PATH: $(pwd)" >> $REPORT_FILE_NAME
- # Search something like:
- # password = "ss", or not space
- # password = 'ss', or not space
- # password: 'ss'
- # something['password'] = 'ss'
- # something["password"] = 'ss'
- SEARCH_PATTERN="^diff\s|^\+.*(password|api_key|app_key|access_id|access_key|secret|license|token|app_id)(['\"]?\]?\s?[:=]>?\s?)+|[0-9A-Za-z\-]{16,128}['\"]"
- DIRECTORIES="app/**/*.(rb|js) config/ db/ lib/ test/"
- if (ls spec/ &>/dev/null)
- then
- DIRECTORIES="$DIRECTORIES spec/"
- fi
- echo "Will search in folders: $DIRECTORIES"
- git rev-list --all | (
- while read revision; do
- git show -b --format= $revision $DIRECTORIES | awk -v revision="$revision" '{ if ($1 == "diff") { print $0"@"revision } else { print $0 } }' | grep -E $SEARCH_PATTERN
- # git show -b --format= $revision $DIRECTORIES | grep -b -E $SEARCH_PATTERN
- done
- ) >> $REPORT_FILE_NAME
- STATS=$(cat <<-GIT_REPO_STATS
- total revisions count: $(git rev-list --all | wc -l)
- total matched lines: $(wc -l $REPORT_FILE_NAME)
- GIT_REPO_STATS
- )
- echo "FINISHED! The below shows repo stats:"
- echo ">===================================<"
- echo "$STATS"
- echo ">===================================<"
- echo "Now please open \"$REPORT_FILE_NAME\" to check informations!"
Add Comment
Please, Sign In to add comment