Skip to content

Commit a8ace24

Browse files
author
Matthias Koeppe
committed
Use label prefix 'component: ', no labels for ticket type 'enhancement'/'task', 'major' (default) priority
1 parent a5320f7 commit a8ace24

File tree

1 file changed

+39
-22
lines changed

1 file changed

+39
-22
lines changed

migrate.py

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -598,16 +598,30 @@ def convert_xmlrpc_datetime(dt):
598598
def convert_trac_datetime(dt):
599599
return datetime.strptime(str(dt), "%Y-%m-%d %H:%M:%S")
600600

601-
def maptickettype(tickettype) :
602-
if tickettype == 'defect' :
601+
def maptickettype(tickettype):
602+
"Return GitHub label corresponding to Trac ``tickettype``"
603+
if tickettype == 'defect':
603604
return 'bug'
604-
if tickettype == 'clarification' :
605-
return 'question'
606-
if tickettype == 'task' :
607-
return 'enhancement'
605+
# if tickettype == 'clarification':
606+
# return 'question'
607+
# if tickettype == 'task':
608+
# return 'enhancement'
608609
if tickettype == 'PLEASE CHANGE':
609610
return None
610-
return tickettype.lower()
611+
#return tickettype.lower()
612+
return None
613+
614+
def mapcomponent(component):
615+
"Return GitHub label corresponding to Trac ``component``"
616+
# Prefix it with "component: " so that they show up as one group in the GitHub dropdown list
617+
return f'component: {component}'
618+
619+
default_priority = 'major'
620+
def mappriority(priority):
621+
"Return GitHub label corresponding to Trac ``priority``"
622+
if priority == default_priority:
623+
return None
624+
return priority
611625

612626
def gh_create_milestone(dest, milestone_data) :
613627
if dest is None : return None
@@ -619,16 +633,16 @@ def gh_create_milestone(dest, milestone_data) :
619633
def gh_ensure_label(dest, labelname, labelcolor) :
620634
if dest is None or labelname is None:
621635
return
636+
labelname = labelname.lower()
622637
if labelname in gh_labels:
623638
return
624639
print ('Create label %s with color #%s' % (labelname, labelcolor));
625640
gh_label = dest.create_label(labelname, labelcolor);
626-
gh_labels[labelname.lower()] = gh_label;
641+
gh_labels[labelname] = gh_label;
627642
sleep(sleep_after_request)
628643

629644
def gh_create_issue(dest, issue_data) :
630645
if dest is None : return None
631-
632646
if 'labels' in issue_data:
633647
labels = [gh_labels[label.lower()] for label in issue_data.pop('labels')]
634648
else:
@@ -921,7 +935,7 @@ def convert_issues(source, dest, only_issues = None, blacklist_issues = None):
921935
if summary is None :
922936
summary = src_ticket_data['summary']
923937
if priority is None :
924-
priority = src_ticket_data.get('priority', 'normal')
938+
priority = src_ticket_data.get('priority', default_priority)
925939
if severity is None :
926940
severity = src_ticket_data.get('severity', 'normal')
927941
if keywords is None :
@@ -936,10 +950,11 @@ def convert_issues(source, dest, only_issues = None, blacklist_issues = None):
936950
if add_label:
937951
labels.append(add_label)
938952
if component is not None and component.strip() != '' :
939-
labels.append(component)
940-
gh_ensure_label(dest, component, labelcolor['component'])
941-
if priority != 'normal' :
942-
labels.append(priority)
953+
label = mapcomponent(component)
954+
labels.append(label)
955+
gh_ensure_label(dest, label, labelcolor['component'])
956+
if priority != default_priority:
957+
labels.append(mappriority(priority))
943958
gh_ensure_label(dest, priority, labelcolor['priority'])
944959
if severity != 'normal' :
945960
labels.append(severity)
@@ -1080,9 +1095,10 @@ def convert_issues(source, dest, only_issues = None, blacklist_issues = None):
10801095
elif change_type == "component" :
10811096
if oldvalue != '' :
10821097
with contextlib.suppress(ValueError):
1083-
labels.remove(oldvalue)
1084-
labels.append(newvalue)
1085-
gh_ensure_label(dest, newvalue, labelcolor['component'])
1098+
labels.remove(mapcomponent(oldvalue))
1099+
label = mapcomponent(newvalue)
1100+
labels.append(label)
1101+
gh_ensure_label(dest, label, labelcolor['component'])
10861102
comment_data['note'] = 'Changing component from ' + oldvalue + ' to ' + newvalue + '.'
10871103
gh_comment_issue(dest, issue, comment_data, src_ticket_id)
10881104
gh_update_issue_property(dest, issue, 'labels', labels)
@@ -1133,12 +1149,13 @@ def convert_issues(source, dest, only_issues = None, blacklist_issues = None):
11331149
issue_data['title'] = newvalue
11341150
gh_update_issue_property(dest, issue, 'title', issue_data['title'])
11351151
elif change_type == "priority" :
1136-
if oldvalue != '' and oldvalue != 'normal' :
1152+
if oldvalue != '' and oldvalue != default_priority:
11371153
with contextlib.suppress(ValueError):
1138-
labels.remove(oldvalue)
1139-
if newvalue != '' and newvalue != 'normal' :
1140-
labels.append(newvalue)
1141-
gh_ensure_label(dest, newvalue, labelcolor['priority'])
1154+
labels.remove(mappriority(oldvalue))
1155+
if newvalue != '' and newvalue != default_priority:
1156+
label = mappriority(newvalue)
1157+
labels.append(label)
1158+
gh_ensure_label(dest, label, labelcolor['priority'])
11421159
comment_data['note'] = 'Changing priority from ' + oldvalue + ' to ' + newvalue + '.'
11431160
gh_comment_issue(dest, issue, comment_data, src_ticket_id)
11441161
gh_update_issue_property(dest, issue, 'labels', labels)

0 commit comments

Comments
 (0)