需求背景:
故事上线前,需要每日下班前进行bug统计,发送到飞书群
实现效果:
通过Jenkins定时构建,统计当日新增未解决bug、当前未解决bug、待测试bug、当前bug总数,触发飞书机器人发送相关信息到项目群中,点击bug数量可跳转到jira
代码结构:
import os
import requests
from jira import JIRA
from urllib.parse import quote
class storyBugCounts:
# 故事bug统计
def __init__(self, jira_server, jira_user, jira_pwd, issue_key=os.environ['issue_key'], feishu_url=os.environ['feishu_url']):
self.jira_server=jira_server
self.jira_user=jira_user
self.jira_pwd=jira_pwd
self.jira_object=JIRA(self.jira_server,auth=(self.jira_user,self.jira_pwd)) #登录
self.issue_key = issue_key
self.feishu_url = feishu_url
def new_bugs_count(self):
"""
今日新增未解决bug统计
:return:
"""
query = f'issue in linkedIssues({self.issue_key},"is blocked by") and issuetype = 缺陷 and status in (重新打开, 待办, 开发) and created >= -12h'
all_bug = len(self.jira_object.search_issues(query))
# 对 URL 进行编码
encoded_url = quote(query)
bug_href = '{0}/issues/?filter=-4&jql={1}'.format(self.jira_server, encoded_url)
return [all_bug, bug_href]
def unsolved_bugs_count(self):
"""
未解决bug统计
:return:
"""
'''
# 通过issue获取bug数据
issue = self.jira_object.issue(self.issue_key)
unsolved_bugs = [