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