def create_yt_issue_from_jira_issue(target, issue, project_id): yt_issue = Issue() yt_issue['comments'] = [] yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):] for field in issue['fields'].values(): field_type = get_yt_field_type(field[u'type']) field_name = get_yt_field_name(field[u'name']) if field_name == 'comment': for comment in field['value']: yt_comment = Comment() yt_comment.text = comment['body'] comment_author_name = "guest" if 'author' in comment: comment_author = comment['author'] create_user(target, comment_author) comment_author_name = comment_author['name'] yt_comment.author = comment_author_name.replace(' ', '_') yt_comment.created = to_unix_date(comment['created']) yt_comment.updated = to_unix_date(comment['updated']) yt_issue['comments'].append(yt_comment) elif (field_name is not None) and (field_type is not None): if 'value' in field: value = field['value'] if len(value): if isinstance(value, list): yt_issue[field_name] = [] for v in value: create_value(target, v, field_name, field_type, project_id) yt_issue[field_name].append(get_value_presentation(field_type, v)) else: create_value(target, value, field_name, field_type, project_id) yt_issue[field_name] = get_value_presentation(field_type, value) return yt_issue
def to_yt_issue(target, issue, project_id, fields_mapping=None, value_mappings=None): yt_issue = Issue() yt_issue['comments'] = [] yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):] for field, value in issue['fields'].items(): if value is None: continue if fields_mapping and field.lower() in fields_mapping: field_name, field_type = fields_mapping[field.lower()] else: field_name = get_yt_field_name(field) field_type = get_yt_field_type(field_name) if field_name == 'comment': for comment in value['comments']: yt_comment = Comment() yt_comment.text = comment['body'] comment_author_name = "guest" if 'author' in comment: comment_author = comment['author'] create_user(target, comment_author) comment_author_name = comment_author['name'] yt_comment.author = comment_author_name.replace(' ', '_') yt_comment.created = to_unix_date(comment['created']) yt_comment.updated = to_unix_date(comment['updated']) yt_issue['comments'].append(yt_comment) elif (field_name is not None) and (field_type is not None): if isinstance(value, list) and len(value): yt_issue[field_name] = [] for v in value: if isinstance(v, dict): v['name'] = get_yt_field_value(field_name, v['name'], value_mappings) else: v = get_yt_field_value(field_name, v, value_mappings) create_value(target, v, field_name, field_type, project_id) yt_issue[field_name].append(get_value_presentation(field_type, v)) else: if field_name.lower() == 'estimation': if field_type == 'period': value = int(int(value) / 60) elif field_type == 'integer': value = int(int(value) / 3600) if isinstance(value, int): value = str(value) if len(value): if isinstance(value, dict): value['name'] = get_yt_field_value(field_name, value['name'], value_mappings) else: value = get_yt_field_value(field_name, value, value_mappings) create_value(target, value, field_name, field_type, project_id) yt_issue[field_name] = get_value_presentation(field_type, value) elif _debug: print 'DEBUG: unclassified field', field_name return yt_issue
def to_yt_issue(target, issue, project_id, fields_mapping=None, value_mappings=None): yt_issue = Issue() yt_issue['comments'] = [] yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):] for field, value in issue['fields'].items(): if value is None: continue if fields_mapping and field.lower() in fields_mapping: field_name, field_type = fields_mapping[field.lower()] else: field_name = get_yt_field_name(field) field_type = get_yt_field_type(field_name) if field_name == 'comment': for comment in value['comments']: yt_comment = Comment() yt_comment.text = comment['body'] comment_author_name = "guest" if 'author' in comment: comment_author = comment['author'] create_user(target, comment_author) comment_author_name = comment_author['name'] yt_comment.author = comment_author_name.replace(' ', '_') yt_comment.created = to_unix_date(comment['created']) yt_comment.updated = to_unix_date(comment['updated']) yt_issue['comments'].append(yt_comment) elif (field_name is not None) and (field_type is not None): if isinstance(value, list) and len(value): yt_issue[field_name] = [] for v in value: if isinstance(v, dict): v['name'] = get_yt_field_value(field_name, v['name'], value_mappings) else: v = get_yt_field_value(field_name, v, value_mappings) create_value(target, v, field_name, field_type, project_id) yt_issue[field_name].append(get_value_presentation(field_type, v)) else: if field_name.lower() == 'estimation': if field_type == 'period': value = int(int(value) / 60) elif field_type == 'integer': value = int(int(value) / 3600) if isinstance(value, int): value = str(value) if len(value): if isinstance(value, dict): value['name'] = get_yt_field_value(field_name, value['name'], value_mappings) else: value = get_yt_field_value(field_name, value, value_mappings) create_value(target, value, field_name, field_type, project_id) yt_issue[field_name] = get_value_presentation(field_type, value) elif _debug: print 'DEBUG: unclassified field', field_name return yt_issue
def create_yt_issue_from_jira_issue(target, issue, project_id): yt_issue = Issue() yt_issue['comments'] = [] yt_issue.numberInProject = issue['key'][(issue['key'].find('-') + 1):] for field, value in issue['fields'].items(): if value is None: continue field_name = get_yt_field_name(field) field_type = get_yt_field_type(field_name) if field_name == 'comment': for comment in value['comments']: yt_comment = Comment() yt_comment.text = comment['body'] comment_author_name = "guest" if 'author' in comment: comment_author = comment['author'] create_user(target, comment_author) comment_author_name = comment_author['name'] yt_comment.author = comment_author_name.replace(' ', '_') yt_comment.created = to_unix_date(comment['created']) yt_comment.updated = to_unix_date(comment['updated']) yt_issue['comments'].append(yt_comment) elif (field_name is not None) and (field_type is not None): if isinstance(value, list) and len(value): yt_issue[field_name] = [] for v in value: create_value(target, v, field_name, field_type, project_id) yt_issue[field_name].append( get_value_presentation(field_type, v)) else: if isinstance(value, int): value = str(value) if len(value): create_value(target, value, field_name, field_type, project_id) yt_issue[field_name] = get_value_presentation( field_type, value) else: print field_name return yt_issue