diff --git a/migrate_assignments.sh b/migrate_assignments.sh new file mode 100755 index 0000000..2adccd9 --- /dev/null +++ b/migrate_assignments.sh @@ -0,0 +1,98 @@ +#!/bin/bash +set -eu + +readonly PROGNAME=`/usr/bin/basename $0` +readonly PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` +readonly REVISION="0.0.1-WIP" + +repo_in="" +repo_out="" +dry_run=true + +# +# FUNCTIONS +# + +print_help() +{ +cat << "EOF" +PURPOSE + this script will start in DRY MODE by default - see --GO parameter + +INSTALLATION AND PREPERATION +- install tea: https://gitea.com/gitea/tea +- create Gitea tokens for tea + - permissions on the OLD system: + - user: read + - issue: read + - permissions on the NEW system: + - user: read + - issue: read and write +- set up login via tea → "tea login add --help", i.e. + - tea login add --name OLD --url https://oldgitea.example.com --token 123456789123456789 + - tea login add --name NEW --url https://newgitea.example.com --token 123459789123456789 + +USAGE + -h | --help print this help + -i | -in required, i.e. https://oldgitea.example.com/my_old_repo + -o | -out required, i.e. https://newgitea.example.com/my_new_repo + --GO stop dry mode +EOF +} + +error_in_or_out_not_specified() +{ + echo -e "Error: --in and --out must be specified\n"; + print_help; + exit 2 +} + +# +# PARAMETERS +# +if [[ "$@" == "" ]] ; then error_in_or_out_not_specified ; fi +TEMP=$(getopt -o hi:o: --long help,GO,in:,out: -n "${PROGNAME}" -- "$@") +eval set -- "${TEMP}" +while true ; do + case "$1" in + --help|-h) + print_help + exit 0 + ;; + --in|-i) + repo_in="$2" + shift + ;; + --out|-o) + repo_out="$2" + shift + ;; + --GO) + dry_run=false + ;; + --) shift ; break ;; + *) echo "Internal error!" + exit 5 + ;; + esac + shift +done + +# check required +if [[ -z "$repo_in" || -z "$repo_out" ]] ; then error_in_or_out_not_specified ; fi + +# +# START +# +if $dry_run; then echo -e "###\n### DRY RUN - will not change anything\n###"; fi + + + + + + +tea issues list --output simple --login NEW +tea issues list --output simple --login NEW --repo eine_tolle_organisation/ein_tolles_repository + +exit 0 +