diff --git a/README.md b/README.md index 39c27f7..814f24e 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,10 @@ Migrate assignments for Gitea-Issues after a Gitea2Gitea-Migration. 1. migrate your repository from your OLD Gitea instance to your NEW one 2. use this script to migrate the assignments +## Design Decisions +- the title is not fetched due to complications with tea and "quotes" +- the script places a comment and mentiones the creator of the issue to inform that person of the new location of the issue + ## For mor information …[read the script](migrate_assignments.sh) or read the help-page. diff --git a/migrate_assignments.sh b/migrate_assignments.sh index 51fdcf8..92c2792 100755 --- a/migrate_assignments.sh +++ b/migrate_assignments.sh @@ -11,7 +11,7 @@ set -eu readonly PROGNAME=`/usr/bin/basename $0` readonly PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` -readonly REVISION="1.3.0" +readonly REVISION="1.3.1" repo="" login_old="" @@ -46,7 +46,6 @@ INFORMATION - issue-ids are checked; titles are not checked - assignments in new repo are checked - the --wait time slows down the script to reduce e-mail-sending-speed -- the title is not fetched due to complications with tea and "quotes" - Troubleshooting - "Error: could not edit issue:" - please check, if the assigned person(s) have the right to be assigned (are they in the Organisation? Collaborators?) @@ -70,15 +69,15 @@ INSTALLATION AND PREPARATION USAGE SWITCHES - -h | --help print this help - -c | --colour disable colour output - --GO stop dry mode + -h | --help print this help + -c | --colour | --color disable colour output + --GO stop dry mode PARAMETERS - -r | --repo required, i.e. "my_organisation/my_repository" - -o | --login_old required, tea-id of your old login - -n | --login_new required, tea-id of your new login - -w | --wait wait time in s between issue handling (default 0.25) + -r | --repo required, i.e. "my_organisation/my_repository" + -o | --login_old required, tea-id of your old login + -n | --login_new required, tea-id of your new login + -w | --wait wait time in s between issue handling (default 0.25) EOF } @@ -99,7 +98,7 @@ checkCommand() # PARAMETERS # if [[ "$@" == "" ]] ; then error_in_or_out_not_specified ; fi -readonly TEMP=$(getopt -o h,r:o:n:w:c --long help,GO,colour,repo:,login_old:,login_new:,wait: -n "${PROGNAME}" -- "$@") +readonly TEMP=$(getopt -o h,r:o:n:w:c --long help,GO,colour,color,repo:,login_old:,login_new:,wait: -n "${PROGNAME}" -- "$@") eval set -- "${TEMP}" while true ; do case "$1" in @@ -107,7 +106,7 @@ while true ; do print_help exit 0 ;; - --colour|-c) + --colour|--color|-c) use_colour=false ;; --repo|-r) @@ -185,7 +184,7 @@ echo "# processing data" while IFS="¬"; read -r index author assignees; do assignees=$(echo "$assignees" | tr ' ' ,) - echo "… #$index - by \"$author\" assigned to \"$assignees\"" + echo -n "… #$index - by \"$author\" assigned to \"$assignees\"" # comment for the original author if [ $dry_run = false ]; then @@ -193,24 +192,18 @@ while IFS="¬"; read -r index author assignees; do fi # assignment + t="OK" if [[ -n $assignees ]]; then if [ $dry_run = false ]; then tea issue edit --login "$login_new" --repo "$repo" --add-assignees "$assignees" "$index" >/dev/null fi - - t="OK" - if [ $use_colour = true ]; then - echo -e " → \e[1m\e[48;5;22m$t\e[0m" - else - echo " → $t" - fi else - t="INFO: added comment, no assignee" - if [ $use_colour = true ]; then - echo -e " → \e[1m\e[48;5;172m$t\e[0m" - else - echo -e " → $t" - fi + t="OK (no assignee)" + fi + if [ $use_colour = true ]; then + echo -e " → \e[1m\e[48;5;22m$t\e[0m" + else + echo " → $t" fi sleep $wait_time