Search Git Users

Introduction

Let’s say we want to change our git username to another one. Instead of checking manually if the username is already taken, we can automate this process by writing a script named fgitusr. The content of the script looks like this:

Code

# Check regex rules
if [[ !("$1" =~ ^[0-9a-zA-Z]{1}[0-9a-zA-Z\-]*[0-9a-zA-Z]{1}$) ]]; then
    echo "$1 DOESN'T MATCH REGEX"
    exit 1
fi

# Check if usersname exists
curl --output /dev/null --silent  --head --fail "https://github.com/$1"
if [ $? -eq 0 ]; then
    echo "USER $1 EXISTS";
else
    echo "USER $1 DOESN'T EXIST";
fi

The main idea is that we use curl to look if the url https://github.com/<username> is a valid link. If it is, then the user exist.

Output

When user is found:

$ fgitusr foo
USER foo EXISTS

When user is not found:

$ fgitusr fobarfoo
USER fobarfoo DOESN'T EXIST

When user doesn’t respect regex rules:

$ fgitusr foo_bar
foo_bar DOESN'T MATCH REGEX

Conclusion

The advantage of searching usernames with this method, is that you can automate the process. For example you can use a for loop over multiple usernames to check if every username is available:

$ for u in "abc" "bcd" "cde"; fgitusr $u
USER abc EXISTS
USER bcd EXISTS
USER cde EXISTS
bash  regex