飞书机器人--jira bug统计消息推送

目录

需求背景:项目上线前,需要每日下班前进行bug统计,发送到飞书群中

代码结构(详细代码见下):

添加飞书机器人:

Jenkins自动构建配置


需求背景:

项目上线前,需要每日下班前进行bug统计,发送到飞书群中

实现效果:

通过Jenkins定时构建,统计当日新增未解决bug、当前版本未解决bug、待验证bug、当前版本bug总数,触发飞书机器人发送相关信息到项目群中,点击bug数量可跳转到jira

代码结构(详细代码见下):

class BugCounts:      
def __init__(self, project=os.environ['project'], jira_ip=JIRA_URL, jira_user=user_name,jira_pwd=pwd,label=os.environ['label'],feishu_url=os.environ['feishu_url']):self.jira_ip = jira_ipself.jira_user = jira_userself.jira_pwd = jira_pwdself.jr = JIRA(r'https://{0}'.format(jira_ip), auth=(jira_user, jira_pwd))self.project = projectself.label = labelself.feishu_url = feishu_url
def new_bugs_count(self):"""今日新增未解决bug统计:return:"""# all_bug = self.jr.search_issues(jql_str=f'project = {self.project} AND status = "To Do" AND created >= -12h')
# 如果用户未上传项目版本号,则统计的是当前项目所有版本的今日新增未解决bugif self.label == 'None':jql_str = 'project = {0} AND status in ("To Do", 处理中, 重新打开) AND created >= -12h'.format(self.project)bug_href = 'https://{0}/issues/?jql=...{1}'.format(self.jira_ip,self.project)else:jql_str = 'project = {0} AND status in ("To Do", 处理中, 重新打开) AND labels = {1} AND created >= -12h'.format(self.project, self.label)bug_href = 'https://{0}/issues/?jql=...{1}...{2}...'.format(self.jira_ipself.project, self.label)all_bug = self.jr.search_issues(jql_str=jql_str, maxResults=100000)return [len(all_bug), bug_href]def feishu_robot(self):feishu_url = self.feishu_urlif self.label == 'None':title = "{0}bug统计".format(self.project)else:title = "{0}-{1}bug统计".format(self.project, self.label)res = requests.post(url=feishu_url,headers={'Content-Type': 'application/json'},json={'msg_type': "post",'content': {"post": {"zh_cn": {'title': title,'content': [[{"tag": "text", "text": '今日新增未解决bug:'},{"tag": "a", "href": self.new_bugs_count()[1],"text": "{0}个".format(self.new_bugs_count()[0])}],[{"tag": "text", "text": '当前版本未解决bug:'},{"tag": "a", "href": self.unhandled_bugs_count()[1],"text": "{0}个".format(self.unhandled_bugs_count()[0])}],[{"tag": "text", "text": '待验证bug:'},{"tag": "a", "href": self.ready_to_test_bugs_count()[1],"text": "{0}个".format(self.ready_to_test_bugs_count()[0])}],[{"tag": "text", "text": '当前版本bug总数:'},{"tag": "a", "href": self.all_bugs_count()[1],"text": "{0}个".format(self.all_bugs_count()[0])}]]}}}})print(res.json())

添加飞书机器人:

选择飞书群--设置--群机器人--添加机器人--添加自定义机器人

 填写机器人名称、描述--点击添加

 添加成功后,会生成一个webhook地址,要保存好此地址哦,调用飞书机器人用到的就是这个地址

 飞书推送消息的内容、格式可以自己构造,具体参照开发文档 - 飞书开放平台

Jenkins自动构建配置

使用参数化构建+定时构建+自动拉取gitlab代码(Jenkins获取gitlab代码可见:Jenkins拉取gitlab代码)

设置构建参数,这些参数脚本中需要引用

 定时构建:

 都配置完成后就可以构建运行啦~(第一次写文章,如有不清晰、描述不正确的地方还请各位老师多多指正 轻点喷哈)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部