diff options
Diffstat (limited to 'add-networked-repos.sh')
-rwxr-xr-x | add-networked-repos.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/add-networked-repos.sh b/add-networked-repos.sh new file mode 100755 index 0000000..fa7697f --- /dev/null +++ b/add-networked-repos.sh @@ -0,0 +1,29 @@ +#!/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}" |