Skip to content

Commit

Permalink
SPARK-4507: PR merge script should support closing multiple JIRA tickets
Browse files Browse the repository at this point in the history
  • Loading branch information
hase1031 committed Nov 24, 2014
1 parent f1069b8 commit ce89021
Showing 1 changed file with 38 additions and 39 deletions.
77 changes: 38 additions & 39 deletions dev/merge_spark_pr.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,36 +215,12 @@ def fix_version_from_branch(branch, versions):


def resolve_jira(title, merge_branches, comment):
asf_jira = jira.client.JIRA({'server': JIRA_API_BASE},
basic_auth=(JIRA_USERNAME, JIRA_PASSWORD))

default_jira_id = ""
search = re.findall("SPARK-[0-9]{4,5}", title)
if len(search) > 0:
default_jira_id = search[0]

jira_id = raw_input("Enter a JIRA id [%s]: " % default_jira_id)
if jira_id == "":
jira_id = default_jira_id

try:
issue = asf_jira.issue(jira_id)
except Exception as e:
fail("ASF JIRA could not find %s\n%s" % (jira_id, e))

cur_status = issue.fields.status.name
cur_summary = issue.fields.summary
cur_assignee = issue.fields.assignee
if cur_assignee is None:
cur_assignee = "NOT ASSIGNED!!!"
else:
cur_assignee = cur_assignee.displayName
def get_version_json(version_str):
return filter(lambda v: v.name == version_str, versions)[0].raw

if cur_status == "Resolved" or cur_status == "Closed":
fail("JIRA issue %s already has status '%s'" % (jira_id, cur_status))
print ("=== JIRA %s ===" % jira_id)
print ("summary\t\t%s\nassignee\t%s\nstatus\t\t%s\nurl\t\t%s/%s\n" % (
cur_summary, cur_assignee, cur_status, JIRA_BASE, jira_id))
asf_jira = jira.client.JIRA({'server': JIRA_API_BASE},
basic_auth=(JIRA_USERNAME, JIRA_PASSWORD))

versions = asf_jira.project_versions("SPARK")
versions = sorted(versions, key=lambda x: x.name, reverse=True)
Expand All @@ -263,21 +239,44 @@ def resolve_jira(title, merge_branches, comment):
default_fix_versions = filter(lambda x: x != v, default_fix_versions)
default_fix_versions = ",".join(default_fix_versions)

fix_versions = raw_input("Enter comma-separated fix version(s) [%s]: " % default_fix_versions)
if fix_versions == "":
fix_versions = default_fix_versions
fix_versions = fix_versions.replace(" ", "").split(",")
search_jira_ids = re.findall("SPARK-[0-9]{4,5}", title)

def get_version_json(version_str):
return filter(lambda v: v.name == version_str, versions)[0].raw
for search_jira_id in search_jira_ids:
jira_id = raw_input("Enter a JIRA id [%s]: " % search_jira_id)
if jira_id == "":
jira_id = search_jira_id

try:
issue = asf_jira.issue(jira_id)
except Exception as e:
fail("ASF JIRA could not find %s\n%s" % (jira_id, e))

cur_status = issue.fields.status.name
cur_summary = issue.fields.summary
cur_assignee = issue.fields.assignee
if cur_assignee is None:
cur_assignee = "NOT ASSIGNED!!!"
else:
cur_assignee = cur_assignee.displayName

if cur_status == "Resolved" or cur_status == "Closed":
fail("JIRA issue %s already has status '%s'" % (jira_id, cur_status))
print ("=== JIRA %s ===" % jira_id)
print ("summary\t\t%s\nassignee\t%s\nstatus\t\t%s\nurl\t\t%s/%s\n" % (
cur_summary, cur_assignee, cur_status, JIRA_BASE, jira_id))

fix_versions = raw_input("Enter comma-separated fix version(s) [%s]: " % default_fix_versions)
if fix_versions == "":
fix_versions = default_fix_versions
fix_versions = fix_versions.replace(" ", "").split(",")

jira_fix_versions = map(lambda v: get_version_json(v), fix_versions)
jira_fix_versions = map(lambda v: get_version_json(v), fix_versions)

resolve = filter(lambda a: a['name'] == "Resolve Issue", asf_jira.transitions(jira_id))[0]
asf_jira.transition_issue(
jira_id, resolve["id"], fixVersions=jira_fix_versions, comment=comment)
resolve = filter(lambda a: a['name'] == "Resolve Issue", asf_jira.transitions(jira_id))[0]
asf_jira.transition_issue(
jira_id, resolve["id"], fixVersions=jira_fix_versions, comment=comment)

print "Succesfully resolved %s with fixVersions=%s!" % (jira_id, fix_versions)
print "Succesfully resolved %s with fixVersions=%s!" % (jira_id, fix_versions)


branches = get_json("%s/branches" % GITHUB_API_BASE)
Expand Down

0 comments on commit ce89021

Please sign in to comment.