diff --git a/git-migrate-org.sh b/git-migrate-org.sh deleted file mode 100755 index 4614bf1..0000000 --- a/git-migrate-org.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash -# -# Migrate (mirror) a remote repository -# -# migrate-repo.sh [] -# -inifilename=$(echo ~)"/.smegit/config" -if [ ! -e $inifilename ] ; then - # Not here, look at system default - if [ ! -e /etc/smegit.ini ] ; then - echo "No ini file found $inifiename or /etc/smegit.ini" - echo "git-mirror-org.sh []" - exit 1 - else - initfilename="/etc/smegit.ini" - fi -fi - -while read -r line || [[ -n "$line" ]]; do - if [[ $line =~ ^\[.*\]$ ]] - then - section=${line#*[} - section=${section%]*} - else - if [[ $line =~ ^[^#]*= ]] - then - key=${line%=*} - value=${line#*=} - declare "${section}_${key}=$value" - fi - fi -done < "$inifilename" - -if [[ -z $1 ]] ; then - echo "migrate-org.sh [ ]" - echo " is optional and will default to the gitea user" - echo " is optional and will echo the changes, but not execute" - exit 0 -fi - -DEBUG= -curlsilent="-s" -if [ ${smegit_DEBUG} == true ] ; then DEBUG=true ; fi -if [ $DEBUG ] ; then - echo "found ini file: $inifilename" - curlsilent="-v" -fi - -MIRROR="copy" -TARGETORG= -for param in $2 $3 $4 ; do - if [ $param ] ; then - if [[ $param == "copy" || $param == "mirror" ]] ; then - MIRROR=$param - elif [[ $param == "review" ]] ; then - REVIEW=true - else - TARGETORG=$param - fi - else - break - fi -done - -REMOTEACCESSTOKEN=${remote_GITEAACCESSTOKEN} -LOCALACCESSTOKEN=${local_GITEAACCESSTOKEN} -REMOTEGITEAHOST=${remote_GITEAHOST} -LOCALGITEAHOST=${local_GITEAHOST} -if [ $DEBUG ] ; then echo "TARGETORG=$TARGETORG" ; fi - -# check that the target organisation exists locally -if [ $DEBUG ] ; then echo "checking that $TARGETORG exists on $LOCALGITEAHOST" ; fi -RESPONSE=$(curl $curlsilent -o /dev/null -w "%{http_code}" $LOCALGITEAHOST/$TARGETORG) -if [ $DEBUG ] ; then echo "RESPONSE=$RESPONSE" ; fi -if [[ "$RESPONSE" != "200" ]] ; then - echo "$TARGETORG does not exist on $LOCALGITEAHOST" - exit 1 -fi - -if [[ ! $REVIEW ]] ; then - while true; do - read -p "Are you sure?(y/n) " yn - case $yn in - [Yy]* ) break;; - [Nn]* ) exit;; - * ) echo "Please answer yes or no.";; - esac - done -fi - -# get a list of repositories in the source organisation -for page in {1..10} ; do - if [ $DEBUG ] ; then echo "getting page $page of repos from $REMOTEGITHOST $1" ; fi - RESPONSE=$(curl $curlsilent -X 'GET' \ - "$REMOTEGITEAHOST/api/v1/orgs/$1/repos?page=$page" \ - -H 'accept: application/json' \ - -H "Authorization: token $REMOTEACCESSTOKEN" - ) - if [ $DEBUG ] ; then echo "RESPONSE=$RESPONSE" ; fi - - if [[ $RESPONSE == '[]' ]] ; then - # we have them all - break - else - echo $RESPONSE | grep -oP '(?<="name":").+?(?=")' | while read repo; do - if [ $DEBUG ] ; then echo "git-migrate-repo.sh ${repo} $1 $TARGETORG $MIRROR" ; fi - if [[ $REVIEW ]] ; then - echo "git-migrate-repo.sh ${repo} $1 $TARGETORG $MIRROR" - else - git-migrate-repo.sh ${repo} $1 $TARGETORG $MIRROR - fi - done - fi -done