2 Commits
1.3.0 ... 1.3.2

Author SHA1 Message Date
7051919aeb v1.3.2 fixed default-limit-set-by-server-bug 2024-03-07 14:01:42 +01:00
05497c5be2 v1.3.1; changed output; added docs 2024-03-04 15:43:23 +01:00
2 changed files with 24 additions and 27 deletions

View File

@ -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 1. migrate your repository from your OLD Gitea instance to your NEW one
2. use this script to migrate the assignments 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 ## For mor information
…[read the script](migrate_assignments.sh) or read the help-page. …[read the script](migrate_assignments.sh) or read the help-page.

View File

@ -11,7 +11,7 @@ set -eu
readonly PROGNAME=`/usr/bin/basename $0` readonly PROGNAME=`/usr/bin/basename $0`
readonly PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` readonly PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
readonly REVISION="1.3.0" readonly REVISION="1.3.2"
repo="" repo=""
login_old="" login_old=""
@ -46,7 +46,6 @@ INFORMATION
- issue-ids are checked; titles are not checked - issue-ids are checked; titles are not checked
- assignments in new repo are checked - assignments in new repo are checked
- the --wait time slows down the script to reduce e-mail-sending-speed - 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 - Troubleshooting
- "Error: could not edit issue:" - "Error: could not edit issue:"
- please check, if the assigned person(s) have the right to be assigned (are they in the Organisation? Collaborators?) - 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 USAGE
SWITCHES SWITCHES
-h | --help print this help -h | --help print this help
-c | --colour disable colour output -c | --colour | --color disable colour output
--GO stop dry mode --GO stop dry mode
PARAMETERS PARAMETERS
-r | --repo required, i.e. "my_organisation/my_repository" -r | --repo required, i.e. "my_organisation/my_repository"
-o | --login_old required, tea-id of your old login -o | --login_old required, tea-id of your old login
-n | --login_new required, tea-id of your new login -n | --login_new required, tea-id of your new login
-w | --wait wait time in s between issue handling (default 0.25) -w | --wait wait time in s between issue handling (default 0.25)
EOF EOF
} }
@ -99,7 +98,7 @@ checkCommand()
# PARAMETERS # PARAMETERS
# #
if [[ "$@" == "" ]] ; then error_in_or_out_not_specified ; fi 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}" eval set -- "${TEMP}"
while true ; do while true ; do
case "$1" in case "$1" in
@ -107,7 +106,7 @@ while true ; do
print_help print_help
exit 0 exit 0
;; ;;
--colour|-c) --colour|--color|-c)
use_colour=false use_colour=false
;; ;;
--repo|-r) --repo|-r)
@ -160,8 +159,8 @@ checkCommand tr
# check access and get data # check access and get data
echo "# checking access to OLD (\"$login_old\") and NEW (\"$login_new\")" echo "# checking access to OLD (\"$login_old\") and NEW (\"$login_new\")"
readonly json_old=$(tea issues list --output json --login "$login_old" --repo "$repo" --state all --fields index,author,assignees) readonly json_old=$(tea issues list --output json --login "$login_old" --repo "$repo" --state all --limit 99999 --fields index,author,assignees)
readonly json_new=$(tea issues list --output json --login "$login_new" --repo "$repo" --state all --fields index,author,assignees) readonly json_new=$(tea issues list --output json --login "$login_new" --repo "$repo" --state all --limit 99999 --fields index,author,assignees)
echo "# running consistency checks" echo "# running consistency checks"
readonly json_old_ids=$(echo "$json_old" | jq ".[] | .index" | sort -n) readonly json_old_ids=$(echo "$json_old" | jq ".[] | .index" | sort -n)
@ -185,7 +184,7 @@ echo "# processing data"
while IFS="¬"; read -r index author assignees; do while IFS="¬"; read -r index author assignees; do
assignees=$(echo "$assignees" | tr ' ' ,) assignees=$(echo "$assignees" | tr ' ' ,)
echo "… #$index - by \"$author\" assigned to \"$assignees\"" echo -n "… #$index - by \"$author\" assigned to \"$assignees\""
# comment for the original author # comment for the original author
if [ $dry_run = false ]; then if [ $dry_run = false ]; then
@ -193,24 +192,18 @@ while IFS="¬"; read -r index author assignees; do
fi fi
# assignment # assignment
t="OK"
if [[ -n $assignees ]]; then if [[ -n $assignees ]]; then
if [ $dry_run = false ]; then if [ $dry_run = false ]; then
tea issue edit --login "$login_new" --repo "$repo" --add-assignees "$assignees" "$index" >/dev/null tea issue edit --login "$login_new" --repo "$repo" --add-assignees "$assignees" "$index" >/dev/null
fi fi
t="OK"
if [ $use_colour = true ]; then
echo -e " → \e[1m\e[48;5;22m$t\e[0m"
else
echo "$t"
fi
else else
t="INFO: added comment, no assignee" t="OK (no assignee)"
if [ $use_colour = true ]; then fi
echo -e " → \e[1m\e[48;5;172m$t\e[0m" if [ $use_colour = true ]; then
else echo -e " → \e[1m\e[48;5;22m$t\e[0m"
echo -e "$t" else
fi echo "$t"
fi fi
sleep $wait_time sleep $wait_time