def create_comment(jira, current_environment): print("\nCreate comment") try: comment_id = jira.add_comment(current_environment.issue, current_environment.comment_body) print("Comment id: " + str(comment_id)) StepUtility.export_variable("JIRA_COMMENT_ID", comment_id) except Exception as exc: StepUtility.printCleanException(exc) StepUtility.printFail("Exiting Step - Failed to insert a comment") sys.exit(1)
def create_issue(jira, current_environment): print("\nCreate issue") new_issue_dict = {} new_issue_dict.update(project = ast.literal_eval(current_environment.issue_project)) new_issue_dict.update(summary = current_environment.issue_summary) new_issue_dict.update(description = current_environment.issue_description) new_issue_dict.update(issuetype = ast.literal_eval(current_environment.issue_type)) if (current_environment.issue_components): new_issue_dict.update(components = current_environment.issue_components) # print(current_environment.issue_customfields) # sys.exit(1) if current_environment.issue_customfields: url = '{}/rest/api/3/field'.format(current_environment.jira_base_url) response = requests.request('GET', url, auth=HTTPBasicAuth(current_environment.jira_username, current_environment.jira_api_key)) data = response.json() customfields = current_environment.issue_customfields.lstrip('[').rstrip(']') kv_pairs = re.findall(r'(\w+.*?)\s*=\s*(.*?)(?=(?:\s[^\s=]+|$))', customfields) for k, v in kv_pairs: if 'customfield' not in k: for item in data: if k in item['name']: customfield_id = item['id'] new_issue_dict[customfield_id] = v else: new_issue_dict[k] = v try: created_issue = jira.create_issue(new_issue_dict) print("Jira issue " + str(created_issue) + " created") StepUtility.export_variable("JIRA_ISSUE_ID", created_issue) StepUtility.export_variable("main_CF_OUTPUT_URL", str(current_environment.jira_base_url) + "/browse/" + str(created_issue)) except Exception as exc: StepUtility.printCleanException(exc) StepUtility.printFail("Exiting Step - Failed to create issue") sys.exit(1)