91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何統計Jira的bug并發送郵件功能

發布時間:2022-01-15 13:40:47 來源:億速云 閱讀:275 作者:柒染 欄目:開發技術

本篇文章為大家展示了Python如何統計Jira的bug并發送郵件功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Python如何統計Jira的bug并發送郵件功能

1.首先在pycharm上使用pip安裝

 pip install html-table
 pip install jira

2.初始化發件人郵箱,賬號,密碼

# 發件人郵箱賬號
my_sender = 'username@xxx.com.cn'
# user登錄郵箱的用戶名,password登錄郵箱的密碼(授權碼,即客戶端密碼,非網頁版登錄密碼),但用騰訊郵箱的登錄密碼也能登錄成功
my_pass = 'xxxxx'
# 收件人郵箱賬號
my_users=['username@xxx.com.cn']

3.登錄Jira

class JiraTool:
#初始化
    def __init__(self):
        self.server = 'http://ip:5500' //連接Jira的Ip地址
        self.basic_auth = ('username', 'password') //連接Jira的賬戶和密碼
        self.jiraClinet = None

4.登錄Jira

def login(self):
    self.jiraClinet = JIRA(server=self.server, basic_auth=self.basic_auth)
    if self.jiraClinet != None:
        print("登錄成功!")
        return True
    else:
        return False

5.獲取Jira問題列表

def get_issue_list_by_jql(self, jql):
    issue_list = []
    issue_key_list = self.jiraClinet.search_issues(jql_str=jql,startAt=0,maxResults=1000) //Jira默認統計50條,maxResults設置大小
    for key_list in issue_key_list:
        issue = self.jiraClinet.issue(key_list.key)
        issue_list.append(issue)
        # print(issue.key) #關鍵字
        # print(issue.fields.summary) #bug描述
        # print(issue.fields.status) bug狀態
        # print(issue.fields.assignee) #經辦人
        # print(issue.fields.components[0].name) #模塊 
        # print(issue.fields.priority) #優先級
    return issue_list

6.創建一個表格

def gen_new_bug_caption_str(issue_list):
    dict = {}
    for issue in issue_list:
        dict[issue.fields.status.name] = dict.get(issue.fields.status.name, 0) + 1
        #dict[issue.key.split('-')[0]] = dict.get(issue.key.split('-')[0],0) + 1
    caption_str = '近一周共計新增bug' + str(len(issue_list)) + '個。 已關閉:' + str(dict.get('已關閉')) + '個。 已解決待關閉:' + str(dict.get('已解決')) + '個。 待處理:' +str(dict.get('待處理')) + '個'
    #print(caption_str)
    return caption_str

7.生成html

 #標題樣式
    # table.caption.set_style({'font-size':'15px','align':'left'})
    table.caption.set_style({'font-size':'15px'})
    # 表格樣式,即<table>標簽樣式
    table.set_style({
        'border-collapse':'collapse',
        'word-break':'keep-all',
        'white-space':'nowrap',
        'font-size':'14px'
    })
  
    #設置每個單元格的樣式,主要是規定邊框樣式:
    table.set_cell_style({
        'border-color':'#000',
        'border-width':'1px',
        'border-style':'solid',
        'padding':'5px',
    })
    #設置表頭單元格樣式,規定顏色,字體大小,以及填充大小:
    #表頭樣式
    table.set_header_row_style({
        'color':'#fff',
        'background-color':'#696969',
        'font-size':'18px',
    })
    #覆蓋表單單元格字體樣式
    table.set_header_cell_style({
        'padding':'15px',
    })
    #遍歷數據行,根據不同狀態設置背景顏色
    for row in table.iter_data_rows():
        if row[1].value in "待處理":
            row[1].set_style({
                'background-color': '#FFB6C1',
            })
        if row[1].value in "已解決":
            row[1].set_style({
                'background-color': '#E1FFFF',
            })
        if row[1].value in "已關閉":
            row[1].set_style({
                'background-color': '#90EE99',
            })
        if row[1].value in "重新打開":
            row[1].set_style({
                'background-color': '#DC143C',
            })
        if row[1].value in "開發中":
            row[1].set_style({
                'background-color': '#f7d7a7',
            })
    #生成HTML文本:
    html = table.to_html()
    # print(html)
    return html

8.發送郵件

def sendmail(html):
    ret=True
    try:
        # 郵件內容
        msg=MIMEText(html,'html','utf-8')
        # 括號里的對應發件人郵箱昵稱、發件人郵箱賬號
        msg['From']=formataddr(["張三",my_sender])
        # 括號里的對應收件人郵箱昵稱、收件人郵箱賬號
        #msg['To']=formataddr(["李四",my_user])
        # 郵件的主題
        msg['Subject']="bug情況統計"
        server=smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
        # 登錄服務器,括號中對應的是發件人郵箱賬號、郵箱密碼
        server.login(my_sender, my_pass)
        # 發送郵件,括號中對應的是發件人郵箱賬號、收件人郵箱賬號、發送郵件
        server.sendmail(my_sender, my_users, msg.as_string())
        # 關閉連接
        server.quit()
        # 如果 try 中的語句沒有執行,則會執行下面的 ret=False
    except Exception:
        ret=False
    return ret

9.調試

new_bug_jql = "project in (AAA, BBB, CCC)  AND issuetype in (Bug, 缺陷) AND created >= -1w ORDER BY component ASC, assignee ASC, priority DESC, updated DESC"
old_bug_jql = "project in (AAA, BBB, CCC)  AND issuetype in (Bug, 缺陷) AND status in (待處理, 開發中, Reopened) AND created <= -1w ORDER BY component ASC, assignee ASC, priority DESC, updated DESC"
jiraTool = JiraTool()
jiraTool.login()
new_issue_list = jiraTool.get_issue_list_by_jql(new_bug_jql)
new_bug_caption_str = gen_new_bug_caption_str(new_issue_list)
new_bug_html = gen_html_table(new_issue_list,new_bug_caption_str)
# print(new_bug_html)
old_issue_list = jiraTool.get_issue_list_by_jql(old_bug_jql)
old_bug_html = gen_html_table(old_issue_list, "超過一周未關閉bug")
eamil_html = (new_bug_html + "<br/><br/><br/>" + old_bug_html).replace("&gt;", ">").replace("&quot;", "\"").replace("&lt;", "<")
# print(eamil_html)
ret=sendmail(eamil_html)
if ret:
    print("郵件發送成功")
else:
    print("郵件發送失敗")

上述內容就是Python如何統計Jira的bug并發送郵件功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田林县| 雅安市| 仁化县| 木兰县| 兴和县| 开封县| 开平市| 新田县| 祁阳县| 邵武市| 汤原县| 和平区| 唐海县| 芷江| 龙山县| 深泽县| 安岳县| 台州市| 中西区| 桐柏县| 大兴区| 新余市| 余庆县| 满洲里市| 三穗县| 阿图什市| 汉川市| 剑川县| 保定市| 塘沽区| 溧阳市| 舒兰市| 连城县| 迁西县| 布尔津县| 阿拉尔市| 扎兰屯市| 博湖县| 临沧市| 仙桃市| 怀柔区|