#!/bin/bash set -eux set -o noglob API_URL="https://api.github.com/repos" REPO_URL="https://github.com" if [ $# -ne 1 ] ; then echo "The only parameter of the script is user/name of the repo" exit 1 fi # login=$(git config github.user) # passwd=$(git config github.password) get_forks() { fname="${1}" repo_url="$API_URL/$fname/forks" repos="$(curl -s "$repo_url" | jq -r '.[]|.full_name')" for full_name in $repos ; do IFS='/' read -r -a names <<< "${full_name}" l_user="$(echo "${names[0]}"|tr '[:upper:]' '[:lower:]')" git remote add "${l_user}" "${REPO_URL}/${full_name}" git fetch "${l_user}" || continue get_forks "${full_name}" done } get_forks "${1}"