From 16c2fafe3fa7a427812df6ae55e66118d3031005 Mon Sep 17 00:00:00 2001
From: Olivier Prasse <prasseo@ist-156-12.u-ga.fr>
Date: Thu, 3 Sep 2020 10:05:09 +0200
Subject: [PATCH] new script to clone RESIF projects

---
 src/git_dump.sh | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100755 src/git_dump.sh

diff --git a/src/git_dump.sh b/src/git_dump.sh
new file mode 100755
index 0000000..50df51f
--- /dev/null
+++ b/src/git_dump.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+############# variables ################
+# authentification username
+username="ccdump"
+
+# token for ccdump 
+TOKEN="RQP7ixWoMVk6fxnxfypr"
+
+# url prefix in children.json file
+PREFIX="http_url_to_repo"
+
+# number of results per pages (max = 100)
+per_page=50
+
+# les repertoires git de OSUG/RESIF/ se trouvent dans le fichier children.json
+url_repositories="https://gricad-gitlab.univ-grenoble-alpes.fr/api/v4/groups/192/projects?simple=true&include_subgroups=true&per_page=$per_page"
+
+############ function #################
+git_clone()
+{
+	#  project list creation
+	project_list=$(curl -s --header "PRIVATE-TOKEN: $TOKEN" $url_repositories"&page="$page | grep -o "\"$PREFIX\":[^ ,]\+" | xargs -n 1 | sed 's/http_url_to_repo:https:\/\///' )
+
+	# project git clone creation on local host
+	for project in ${project_list[@]}
+	do
+        	git clone --bare https://$username:$TOKEN@$project
+	done
+}
+
+
+############ script ##################
+# total number of projects
+total=$(curl -i -s --header "PRIVATE-TOKEN: $TOKEN" "$url_repositories" | awk '/x-total:/ {printf "%.0f\n", $2}') 
+# max page calculation
+max_page=$(($total / $per_page +1))
+
+for page in `seq $max_page`
+do
+	git_clone
+done
+
-- 
GitLab