from subscribe.jira.sync_to_db import update_issue_to_db, delete_issue_from_db
import logging
logger = logging.getLogger("subscribe")
def parseIssueUpdate(data):
"""
创建时间 created
更新时间 updated
计划开始时间 customfield_10421
计划结束时间 customfield_10422
实际开始时间 customfield_10423
实际结束时间 customfield_10424
解决时间 resolutiondate
关闭时间 customfield_10939
截止时间 duedate
预估截止时间 customfield_10933
"""
fmap = {
"issue_name": "issue_name",
"issue_type": "issue_type",
"project": "project",
"summary": "summary",
"status": "status",
"priority": "priority",
"reporter": "reporter",
"assignee": "assignee",
"description": "description",
"Created": "create_date",
"Updated": "update_date",
"Resolved": "resolved_date",
"Close Date": "close_date",
"Planned Start Date": "plan_start_date",
"Planned End Date": "plan_end_date",
"Actual Start Date": "act_start_date",
"Actual End Date": "act_end_date",
"Due": "due_date",
"Estimated Due Date": "estimate_due_date",
"components": "components",
"platform": "platform",
"milestone_flag": "milestone_flag",
"reproduce_radio": "reproduce_radio",
"labels": "labels",
"resolution": "resolution"
}
datefield = ["Close Date", "Planned Start Date", "Planned End Date", "Actual Start Date", "Actual End Date", "Due", "Estimated Due Date"]
supfield = list(fmap.keys())
predata = {
"issue_name": "",
"issue_type": "",
"project": "",
"summary": "",
"status": "",
"priority": "",
"reporter": "",
"assignee": "",
"description": "",
"create_date": "",
"update_date": "",
"issue_id": "",
"resolved_date": "",
"close_date": "",
"plan_start_date": "",
"plan_end_date": "",
"act_start_date": "",
"act_end_date": "",
"due_date": "",
"estimate_due_date": "",
"components": "",
"platform": "",
"milestone_flag": "",
"reproduce_radio": "",
"labels": "",
"resolution": ""
}
issue = data['issue']
predata['issue_name'] = issue['key']
changelog = data['changelog']
items = changelog['items']
for item in items:
if item['field'] in supfield:
logger.info(item['field'])
if item['field'] == "status":
if item['toString'] != "Integrated":
predata[fmap[item['field']]] = item['toString'].upper()
else:
predata[fmap[item['field']]] = item['toString']
elif item['field'] in datefield:
if item['toString'] == "":
predata[fmap[item['field']]] = None
else:
predata[fmap[item['field']]] = item['toString'].split(" ")[0]
else:
if item['toString'] is None:
predata[fmap[item['field']]] = ""
else:
predata[fmap[item['field']]] = item['toString']
update_issue_to_db(predata)
def parseIssueDelete(data):
issue = data['issue']
issue_name = issue['key']
delete_issue_from_db(issue_name)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.