飞书机器人--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_ip
        self.jira_user = jira_user
        self.jira_pwd = jira_pwd
        self.jr = JIRA(r'https://{0}'.format(jira_ip), auth=(jira_user, jira_pwd))
        self.project = project
        self.label = label
        self.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')
# 如果用户未上传项目版本号,则统计的是当前项目所有版本的今日新增未解决bug
        if 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_ip
                self.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_url
        if 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代码

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

 定时构建:

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值