diff --git a/profiles/base/.local/bin/github_http2ssh b/profiles/base/.local/bin/github_http2ssh new file mode 100755 index 0000000..56a17b2 --- /dev/null +++ b/profiles/base/.local/bin/github_http2ssh @@ -0,0 +1,33 @@ +#/bin/bash +#-- Script to automate https://help.github.com/articles/why-is-git-always-asking-for-my-password + +REPO_URL=`git remote -v | grep -m1 '^origin' | sed -Ene's#.*(https?://[^[:space:]]*).*#\1#p'` +if [ -z "$REPO_URL" ]; then + echo "-- ERROR: Could not identify Repo url." + echo " It is possible this repo is already using SSH instead of HTTPS." + exit +fi + +USER=`echo $REPO_URL | sed -Ene's#https?://github.com/([^/]*)/(.*)[\.git]?#\1#p'` +if [ -z "$USER" ]; then + echo "-- ERROR: Could not identify User." + exit +fi + +REPO=`echo $REPO_URL | sed -Ene's#https?://github.com/([^/]*)/(.*)[\.git]?#\2#p'` +if [ -z "$REPO" ]; then + echo "-- ERROR: Could not identify Repo." + exit +fi + +NEW_URL="git@github.com:$USER/$REPO.git" +echo "Changing repo url from " +echo " '$REPO_URL'" +echo " to " +echo " '$NEW_URL'" +echo "" + +CHANGE_CMD="git remote set-url origin $NEW_URL" +`$CHANGE_CMD` + +echo "Success"