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])