61
61
issueName = issue['key']
62
62
issueFields = issue['fields']
63
63
64
- try:
65
- transitionId = jira.get_transition_id_to_status_name(issue_name, desiredStatus)
66
- jira.set_issue_status_by_transition_id(issue_name, transitionId)
67
- result += 'Workflow Transition To: ' + desiredStatus + '\n'
68
- except Exception as error:
69
- transitions = jira.get_issue_transitions(issueName)
70
- result += 'Error: Transitioning to: "' + desiredStatus + '" failed with: "' + str(error) + '" Valid transitions=' + str(transitions) + '\n'
71
-
72
- prFieldName = propertyMap.get('pullRequestFieldName', 'customfield_10010')
73
-
74
- if prFieldName in issueFields:
75
- currentPR = issueFields[prFieldName]
76
- else:
77
- print('Error: Unable to find pull request field with field name: ' + prFieldName)
78
- currentPR = None
79
-
80
- if currentPR is None:
81
- jira.update_issue_field(issueName, {prFieldName: pull_url})
82
- result += 'Updated PR\n'
83
- elif currentPR is not None and currentPR != pull_url:
84
- result += 'Additional PR: ' + pull_url + '\n'
85
-
64
+ # Need to update user first in case we are starting from Unresourced
86
65
if prAuthor:
87
66
assignee = issueFields['assignee']
88
67
if assignee is None:
@@ -105,6 +84,37 @@ jobs:
105
84
result += 'Changing assignee from: ' + assigneeEmail + ' to: ' + prAuthorEmail + '\n'
106
85
jira.assign_issue(issueName, prAuthorId)
107
86
87
+ # We should be able to transition directly to Merge Pending, keeping this for future reference
88
+ transitionFlow = ['Merge Pending']
89
+ # statusName = str(issueFields['status']['name'])
90
+ # if statusName == 'Awaiting Information' or statusName == 'Unresourced':
91
+ # transitionFlow = ['Accepted', 'Active', 'Merge Pending']
92
+ # elif statusName != 'Active':
93
+ # transitionFlow = ['Active', 'Merge Pending']
94
+
95
+ for desiredStatus in transitionFlow:
96
+ try:
97
+ transitionId = jira.get_transition_id_to_status_name(issueName, desiredStatus)
98
+ jira.set_issue_status_by_transition_id(issueName, transitionId)
99
+ result += 'Workflow Transition To: ' + desiredStatus + '\n'
100
+ except Exception as error:
101
+ transitions = jira.get_issue_transitions(issueName)
102
+ result += 'Error: Transitioning to: "' + desiredStatus + '" failed with: "' + str(error) + '" Valid transitions=' + str(transitions) + '\n'
103
+
104
+ prFieldName = propertyMap.get('pullRequestFieldName', 'customfield_10010')
105
+
106
+ if prFieldName in issueFields:
107
+ currentPR = issueFields[prFieldName]
108
+ else:
109
+ print('Error: Unable to find pull request field with field name: ' + prFieldName)
110
+ currentPR = None
111
+
112
+ if currentPR is None:
113
+ jira.update_issue_field(issueName, {prFieldName: pull_url})
114
+ result += 'Updated PR\n'
115
+ elif currentPR is not None and currentPR != pull_url:
116
+ result += 'Additional PR: ' + pull_url + '\n'
117
+
108
118
return result
109
119
110
120
jirabot_user = os.environ['JIRABOT_USERNAME']
0 commit comments