@@ -38,13 +38,14 @@ jobs:
38
38
COMMENTS_URL : ${{ github.event.pull_request.comments_url }}
39
39
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
40
40
GHUB_JIRA_USER_MAP : ${{ vars.GHUB_JIRA_USER_MAP }}
41
+ JIRA_ISSUE_PROPERTY_MAP : ${{ vars.JIRA_ISSUE_PROPERTY_MAP }}
41
42
run : |
42
43
import os
43
44
import re
44
45
import json
45
46
from jira.client import JIRA
46
47
47
- def updateIssue(jira, issue, prAuthor: str, pull_url: str) -> str:
48
+ def updateIssue(jira, issue, prAuthor: str, propertyMap: dict, pull_url: str) -> str:
48
49
result = ''
49
50
50
51
statusName = str(issue.fields.status)
@@ -67,10 +68,17 @@ jobs:
67
68
transitions = jira.transitions(issue)
68
69
result += 'Error: Transition: "' + transition + '" failed with: "' + str(error) + '" Valid transitions=' + str(transitions) + '\n'
69
70
70
- if issue.fields.customfield_10010 is None:
71
- issue.update(fields={'customfield_10010': pull_url})
71
+ prFieldName = propertyMap.get('pullRequestFieldName', 'customfield_10010')
72
+ try:
73
+ currentPR = getattr(issue.fields, prFieldName)
74
+ except:
75
+ currentPR = None
76
+ print('Error: Unable to get current pull request with field name: ' + prFieldName)
77
+
78
+ if currentPR is None:
79
+ issue.update(fields={prFieldName: pull_url})
72
80
result += 'Updated PR\n'
73
- elif issue.fields.customfield_10010 is not None and issue.fields.customfield_10010 != pull_url:
81
+ elif currentPR is not None and currentPR != pull_url:
74
82
result += 'Additional PR: ' + pull_url + '\n'
75
83
76
84
if prAuthor:
@@ -127,7 +135,11 @@ jobs:
127
135
issue = jira.issue(issue_name)
128
136
result = 'Jirabot Action Result:\n'
129
137
130
- result += updateIssue(jira, issue, prAuthor, pull_url)
138
+ jiraIssuePropertyMap = json.loads(os.environ['JIRA_ISSUE_PROPERTY_MAP'])
139
+ if not isinstance(jiraIssuePropertyMap, dict):
140
+ jiraIssuePropertyMap = {}
141
+
142
+ result += updateIssue(jira, issue, prAuthor, jiraIssuePropertyMap, pull_url)
131
143
jira.add_comment(issue, result)
132
144
else:
133
145
print('Unable to find Jira issue name in title')
0 commit comments