Пример #1
0
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)
Пример #2
0
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)