aboutsummaryrefslogtreecommitdiffstats
path: root/add-networked-repos.sh
diff options
context:
space:
mode:
Diffstat (limited to 'add-networked-repos.sh')
-rwxr-xr-xadd-networked-repos.sh29
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}"