跳转至

Jira

将查询结果保存成CSV表格

import csv

import requests
from jira import JIRA

JIRA_SERVER = 'https://jira.mibo.com'
Personal_Access_Tokens = "填写令牌"
# 使用jira key
jira = JIRA(JIRA_SERVER, token_auth=Personal_Access_Tokens)
issues = jira.search_issues(
    jql_str="assignee was in (mibo) AND issuetype in (客户反馈, 缺陷)",
    json_result=True,
    fields='summary,assignee,status,created,resolutiondate,assignee,customfield_10313,reporter,issuetype',
    maxResults=500000)

def use_api():
    """使用API查询"""
    api_token = Personal_Access_Tokens
    headers = {
        "Content-Type": "application/json",
        "authorization": f"Bearer {api_token}"
    }
    jira_url = "https://jira.mibo.com/rest/shdsd-Timesheet/latest/workReport/extension2?queryType=convention&" \
               f"start=2022-01-01&" \
               f"end=2022-02-01&" \
               "groupBy=U,P,I&" \
               f"userGroup=产品研发线/XXX中心/XXX部门"
    response = requests.get(f"{jira_url}", headers=headers).json()

def result_to_csv(issues,csv_file_path = 'issues.csv'):
    """将查询结果保存到CSV文件"""
    with open(csv_file_path, 'w', newline='', encoding="utf8") as file:
        writer = csv.writer(file)
        # 写入标题行
        writer.writerow(
            ['Key', 'Summary', 'Assignee', 'Status', "created", "fixtime", "assignee", "fixer", "reporter", "type"])
        # 写入每个问题的数据行
        for issue in issues['issues']:
            try:
                fixer = issue['fields']['customfield_10313']['displayName']
            except Exception:
                fixer = "NONE"
            try:
                fixtime = issue['fields']['resolutiondate'][0:19]
            except Exception:
                fixtime = "NONE"
            created = issue['fields']['created'][0:19]
            assignee = issue['fields']['assignee']['displayName']
            reporter = issue['fields']['reporter']['displayName']
            type = issue['fields']['issuetype']['name']

            writer.writerow([issue['key'], issue['fields']['summary'], issue['fields']['assignee']['displayName'],
                             issue['fields']['status']['name'], created, fixtime, assignee, fixer, reporter, type])