def create_issue_project(self, cr, uid, ids, context=None): gitlab_conn = get_connection_gitlab( self.pool.get('ir.config_parameter'), cr) for issue in self.browse(cr, uid, ids, context=context): str_labels = '' regex_title = re.compile("^(\-\s)([A-Z]*\-\d*)(\:\s)(.*)$") regex_criteria = re.compile("^(.*)(\[\w\])\s(\*\*.*\*\*)(.*)$", re.MULTILINE) found_title = regex_title.findall(issue.us_id) for label in issue.label_ids: str_labels = 'col:' + issue.stage_id.name + ',' + label.name found_criteria = regex_criteria.findall(issue.description) for criteria in found_criteria: res = gitlab_conn.createissue( issue.project_id.gitlab_id, #[User Story-id][Criteria ID] Criteria title '[{0}] {1} {2}'.format(found_title[0][1], criteria[1], criteria[2].replace('**', '')), #User Story\n\n Criteria Title Criteria Description description="{0}\n\n - {1} {2}".format( found_title[0][3], criteria[2], criteria[3]), assignee_id=issue.user_id.gitlab_id, labels=str_labels) _logger.info(res) return {'type': 'ir.actions.act_window_close'}
def create_issue_project(self, cr, uid, ids, context=None): gitlab_conn = get_connection_gitlab(self.pool.get('ir.config_parameter'), cr) for issue in self.browse(cr, uid, ids, context=context): str_labels = '' regex_title = re.compile("^(\-\s)([A-Z]*\-\d*)(\:\s)(.*)$") regex_criteria = re.compile("^(.*)(\[\w\])\s(\*\*.*\*\*)(.*)$",re.MULTILINE) found_title = regex_title.findall(issue.us_id) for label in issue.label_ids: str_labels = 'col:' + issue.stage_id.name + ',' + label.name found_criteria = regex_criteria.findall(issue.description) for criteria in found_criteria: res = gitlab_conn.createissue( issue.project_id.gitlab_id, #[User Story-id][Criteria ID] Criteria title '[{0}] {1} {2}'.format(found_title[0][1], criteria[1], criteria[2].replace('**','')), #User Story\n\n Criteria Title Criteria Description description="{0}\n\n - {1} {2}".format(found_title[0][3], criteria[2], criteria[3]), assignee_id=issue.user_id.gitlab_id, labels=str_labels ) _logger.info(res) return {'type': 'ir.actions.act_window_close'}
def sync(self, cr, uid, ids, context=None): gitlab_conn = get_connection_gitlab(self.pool.get('ir.config_parameter'), cr) projects = gitlab_conn.getprojects(per_page=100) self.gitlab_walk_projects(cr, uid, projects, gitlab_conn) return {'type': 'ir.actions.act_window_close'}