iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0
IT管理

每天利用 Jira 開單時,練習一個密技,應該不是薪水小偷吧!?系列 第 30

Day30 - JQL 用於 Automation 實例設定 以及 30天文章鐵人賽回顧

  • 分享至 

  • xImage
  •  

今日分享

  1. JQL 用於 Automation 實例設定
  2. 30天文章鐵人賽回顧
  3. 文章寫完了,還有嗎?

JQL 用於 Automation 實例設定

  1. 手動設定的自動化條件中,JQL 的進階搜尋大多出現在 Trigger 的條件中,我們就用之前練習過的 Automation 實例,再次用我們目前了解到的 Keywords、Operators、Fields 和 Functions,再搭配上語意來解析,相信我會很快學會。
    2, 補充一個關於 "" 的說明,為什麼有些 JQL 中會出現 " " 的符號?
    當我們要進行精確搜尋文字或一段文字,例如 Jira Software,您需要將整個文字括在引号(")中。否則,搜索將返回包含這兩個詞的所有問題,並且順序無關緊要 - 這將包括 Jira Software,但也包括 Jira is the best software!。

好啦!我們要開始回顧之前做的 JQL Automation 設定解析啦!

Day8-又是樸實無華的 Jira 開單日常- 小心!更新到關鍵字就會被貼標籤

這篇文章是練習啟用 Automation template When an issue is updated → search for keywords inside issue and automatically assign a label
當一個 issue 開出來後,在 Sprint 期間,如果有進度就會 update 內容,只要有特定的文字被 update(本次我們設定 iThome ironman ),而我們的 Jira 小秘書就會默默幫你貼標籤 [iThome-Ironman]。
這個設定中分為 When、If、Than,我們先快速的看過 [When] 和 [Than] 的設定,再來看[If]的 JQL。
https://ithelp.ithome.com.tw/upload/images/20231012/20162673DIN9r06IKP.png

  • [When] 的設定:[Issue updated]
  • [Than] 的設定:Edit issue fields--> Labels
  • [If] 的設定:Issue matches JQL text ~ "iThome ironman"
    • 精確搜尋(片語)會使用雙引號("")尋找片語的精確匹配,查找包含單詞 iThome 和 ironman 的所有問題,且順序不限。
    • 且文字會使用 "text" 這個 Fields。
      https://ithelp.ithome.com.tw/upload/images/20231016/20162673BeTIXiqmqC.png
這樣可以清楚了解為什麼上述的 JQL 會這樣撰寫了!(≧▽≦)

Day14-第一次 DeBug 就成功 -Jira Auto-alerts High Priority in Slack

這篇文章是手動設定 Daily Slack summary-daily pulse,每天讓你想知道 sprint 中還未完成的任務清單,這個設定中分為 When、Than、And,我們先快速的看過 [When] 和 [Than] 的設定。(此設定無 IF)
https://ithelp.ithome.com.tw/upload/images/20231012/201626732NIhsvS95g.png

  • [When] 的設定:[Scheduled]
  • [Than] 的設定:Edit issue fields,JQL--> Sprint in openSprints() and statusCategory != Done 這個語法中有 Sprint in openSprints() 和 statusCategory != Done 兩個條件,被 and 做為雙種條件的合集,因此其進階目的是搜尋被指派至已開始但尚未完成的 Sprint 的 issues。
  • [And] 的設定:Send Slack message
    https://ithelp.ithome.com.tw/upload/images/20231016/20162673TVfm5CJvHh.png

30天文章鐵人賽回顧

終於,來到了 30 天鐵人賽的最⋯⋯後⋯⋯一⋯⋯天,回想為什麼我會參加今年鐵人賽,還選了練習 Jira Automation 的各種啟用、設定,為的是進行 IT 管理時能更加有效率。我們來回顧過去 29 天我們做了哪些練習,我會特別說明哪些有是 Template,哪些是手動設定,把這 29 天的練習做個總整理。
大約分為三個主題

  1. 樸實無華的 IT 管理日常
  2. 讓每天溝通工作的 Slack 變成任務戰情室
  3. DevOps 小技巧讓 IT 管理更進階
  4. 進階搜尋 JQL 句型結構元素

樸實無華的 IT 管理日常:

Day1-你知道開 Jira 新專案的 Board 可以選 template 嗎?不用自己建喔!
開 Jira 新專案的 Board 可以選 template,不用自已一步一步建,省時有效率。

Day2-如何快速讓 Jira issue 自動納入 Epic ,並從 backlog 跑到 to do
設定 Ticket 時,透過側邊欄位內容設定,不用自己手動拉票,就能自動從 backlog 跑到 to do,這樣可以縮短 Plan 的時間。

Day3-無腦完成啟用 Jira 三個 Epic Automation templates !
啟用三個 Epic Automation templates 的 Template ,這樣就不用額外花時間去修改母票和子票的變動,能夠一鍵同步。

  • When all stories are completed → then close epic --> 設定成功
  • When epic is completed → then close all the stories present
  • When the story point estimate for an issue is changed → sum up story point estimates in Epic

Day4-你不是不好只是太用腦,快啟用 Jira Transitioned Automation assigned
啟用「When an issue is transitioned → then automatically assign 」的 transitioned Automation template,就不用透過人工口頭、工作群組、email等等提醒工作負責人變更一事,只要依照工作流,把 ticket 拉至下一個欄位時,Jira 就把 Assignee 由 A 改成 B,然後 email 會自動通知 B,減少溝通成本及系統設定時間成本。

Day5-你不是不好只是太用腦,快啟用 Jira 自動提醒你有五天沒更新票了!
啟用 When an issue remains for 5 days without an update → send a notification to the Assignee 的 Transitioned Automation template ,當 Ticket 被轉換到某一工作流的 status 中(如 To do 或 In Progress ) 停留了五天沒有任何更新,系統會自動提醒 Assignee ,這樣就不用額外檢查,能自動了解工作缺口。

Day26 - Jira 提醒設定好造成同事困擾,一言不合要我動手修好~
把Transitioned Automation template - When an issue remains for 5 days without an update → send a notification to the Assignee,動手調整成 When an issue remains for 5 days without an update & also in progress → send a notification to Slack
因為我無腦用 Automation Template 把 Jira 提醒信設定好,造成同事困擾(ఠ్ఠ˓̭ఠ్ఠ),所以我應該依照團隊真實的工作流這樣才能適用,不然只是擾人,反而無助於 IT 管理!

Day6-又是樸實無華的開單日常-你卡一個 Bug ,Jira 自動抓交替來幫你看!
啟用 When a bug is created → add someone as a watcher 的 Transitioned Automation template,當有人開啟 Bug 這個 issue 時,不用擔心只有自己扛,Jira 會自動抓團隊成員一同來當 [Watcher],多人關注降低問題再出錯的風險。

Day7-又是樸實無華的 Jira 開單日常- 任務到期前1天自動寄催債信
手動設定 When a task is near due → send email reminder 的 Automation r山ule
如果你的開發爆炸是日常,很容易忽略任務進度也就不會發現 issue 接近到期日,因此,在接近到期日前,Jira 小秘書默默的寄了封催債信給你,這樣你會知道死線到了,自審任務進度。

Day8-又是樸實無華的 Jira 開單日常- 小心!更新到關鍵字就會被貼標籤
啟用 When an issue is updated → search for keywords inside issue and automatically assign a label 的 Transitioned Automation template,當一個 issue 開出來後,在 Sprint 期間,如果有進度 update 了特定的文字被,而我們的 Jira 小秘書就會默默幫你貼標籤,在管理 issue 類別上是不是很方便呢?

Day9-確診了也要寫文章!又是樸實無華的 Jira 開單日常-誰開單誰負責啦!
手動設定 Auto-assign to whoever created the issue 的 Automation rule,自己開單又沒有設定負責人,就自動自己負責人吧,這樣就沒有任務是孤兒了,是不是很方便呢?

Day10-又是樸實無華的 Jira 開單日常-Auto-create sub-tasks 省力不少啊!
手動設定 Automatically add 5 sub-tasks on issue creation 的 Automation rule,當特定主題的 ssue 被創造後,其相關的後續子任務 subtask 會自動開出在這個母票下,更方便歸類任務清單以及相依性啊


讓每天溝通工作的 Slack 變成任務戰情室

Day13-完成練習 Daily Slack summary 自動化,但卻出現 SOME ERRORS,有個真 Bug 要解了啦!
手動設定 Daily Slack summary ,讓你想知道 sprint 中還未完成的任務清單,是不是很省事。

Day14-第一次 DeBug 就成功 -Jira Auto-alerts High Priority in Slack
手動設定 High Priority alerts in Slack,當你的 Ticket 的 Prior 被設定為 Highest,你或團隊會在 Slack 收到提醒🔔,這樣可以快速內部審視。

Day15-慶祝鐵人賽文章完成一半,應景玩個 Jira Celebrate Milestones in Slack
手動設定 Celebrate final task in Epic completing ,Whenever the last task is completed in Jira, send a celebratory message to the Slack room.
Slack 不但是溝通頻道,也具有人性化的提醒團隊們辛苦了,工作終於告一個段落了。

Day16-不用一個一個設定,Jira 直接一鍵設定 Slack integration
手動設定 Slack integration,讓 slack 每天例行的回報任務狀況,妥妥的讓 slack 成為了戰情室啊。

Day23 - 反樸歸真一天- 重覆的工作描述就讓 Jira Automation 代勞吧!你去寫 Code 或教我 DeBug
手動設定 When a issue created automation write the description template,每次只要創立特定主題的 issue,那張 issue 就會自動生成 description template,我們就更方便的把任務描述寫上去,不會漏掉重要資訊欄位。


DevOps 小技巧讓 IT 管理更進階

Day11-不想花時間做文件-你需要自動生成 Retro Confluence 的 DevOps 密技
啟用 When sprint is completed → create retro notes in Confluence 的 Automation template,當一個 Sprint 結束後,這時 Jira 小秘書會直接用彈跳式對話框問你,要不要開一個 Confluence 文件,然後你就能享受一鍵開啟文件的樂趣,不用自己手動設定文件,還不會漏掉要做 Review & Retrospective 這樣是不是很棒。

DAY12-在 Retro 文件自動匯入 Jira Tickets !同場加映 Plan Sprint 2
手動設定 在 Confluence 中自動批次插入 Jira Tickets 來做 review & retrospective,這樣就能直接在會議文件上一起瀏覽本次 Sprint 完成的 issues,更方便做討論。

Day17- 為了寫 DevOps Commit -->move issue to in progress 文章,我終於開始寫程式並使用 GitLab ,是不是有點瘋
不會寫程式的我,卻正在寫程式開發專案管理工具的使用文章!為了寫文章,還真的開始學寫 Code 並 import 到 GitLab !所以我要手動設定 DevOps Automation rules - When a commit is made → then move issue to in progress ,真的走一次開發者上 Git 的流程,看到成功連動時,真的覺得很神奇。

Day18 - DevOps - 在 GitLab 開 Commit,Slack 自動告訴你。
手動設定 DevOps Automation rules - When commit created → then send Slack message based on assignee,再次讓 slack 扮演重要成果的小鬧鐘。

Day19 - 工人智慧動手把 Jira 與 GitLab 連結,完成最後一哩路
動手把 Jira 與 GitLab 連結:Use GitLab.com for Jira cloud App to connect Jira,雖然這不是設定 Automation 的環節,但卻是重要的幕後基礎建設。

Day20 - DevOps- 拉 Jira issue 到 IN PROGRESS 立馬 Create a branch in GitLab
啟用 DevOps Automation rules - When issue is moved to In progress → Create a branch in GitLab ,透過工具小技巧,讓 DevOps 更落實。

Day21 - DevOps - 開 Branch,立馬把 Jira issue 移到 IN PROGRESS,真的好棒棒唷
啟用 When a branch is created → then move issue to in progress,透過工作流程進到 GitLab 把該開的 branch 開好,工具之間就會自動連結讓 Jira 票的位置同步,立馬減少工具之間切換來切換去的繁鎖工作。

Day22 - DevOps - 設定失敗! Pull Request is Merged 但 Jira issue 一動也不動
啟用 When a pull request is merged → then move issue to done,但也驗證 DevOps Automation rules 失敗的時刻,因為我只是為了寫文章,而沒有紥實的把 Git 基本功做好,基礎邏輯也不懂,當然無法走到最後,所以不偷懶好好的學習寫程式再學好 Git 吧。

我們從第 3 天開始一直到 第 23 天都是練習設定 Automation rules,今天我們要從過去 30 天內的文章中,挑出有使用 JQL 做進階式的搜尋的 Automation rules 來做句型說明。


進階搜尋 JQL 句型結構元素

  1. 大家還記得 JQL 句型結構中組合元素嗎?
    上述元素中,我們已經認識完畢了,分別為 Keywords、Operators、Fields、Functions 和 進階搜尋文字欄位的重要語法。
    我們再次以 project = "TEST" AND assignee = currentuser() 為例,這句話的意思是,需要進階搜尋出 project key 為 TEST 中,Assignee 是 當前使用者的 issues。(這個例子我用了三次,我發四是最後一次,因為是賽事中最後一次寫文章啦)。以下是這句 JQL 的元素拆解。
    https://ithelp.ithome.com.tw/upload/images/20231012/201626730wYdgXw7Rp.png
  • Day24- 解析 JQL 讓 Automation 更進階-認識 JQL Keywords後,設定開新版本後自動加入 IN PROGRESS 的票中
    這篇文章我們會認識 Keywords 用途和用法。
    keywords是執行以下任一操作(或是以下操作的一部分)的重要單詞:

    • 將兩個或多個子句連接在一起以形成復雜的JQL查詢。
    • 更改一個或多個子句的邏輯。
    • 更改運算子的邏輯。
    • 在JQL查詢中具有明確的定義。
    • 執行特定功能,以更改JQL查詢的結果。
      我也觀察到一個有趣現象,這些 keywords 在 JQL 中都會呈現大寫,也許是為了讓讀者更清楚語法。以下是幾個常用的 keywords。
  • Day25 - 解析 JQL 讓 Automation 更進階 - 今天來認識 JQL operators (運算符號)
    這篇文章我們會認識 Operators 用途和用法。

    • JQL 中的運算符是一個或多個符號或詞語,它比較左側字段的值與右側的一個或多個值(或函數),以使僅檢索到符合條件的結果。一些運算符可能使用 NOT 關鍵字。
  • Day27- 解析 JQL 讓 Automation 更進階 - JQL fields 是什麼?
    這篇文章我們會認識 Fields 用途和用法。

    • Fields,區域/地點/領域,我們在這裡先定義為區段 ,是表示 Jira 區段(或已在 Jira 中的自定義區段)的名詞。
    • 區段是用來指定你希望在 Jira 中搜索的數據元素關鍵。
  • Day28 - 解析 JQL 讓 Automation 更進階 - JQL Functions 函數是什麼?數長慎入
    這篇文章我們會認識 Functions 函數用途和用法。

    • Functions,函數,這個單詞後面通常會跟著括號(),括號中可以包含一個或多個明確的值或 Jira fields 區段,例如:openSprints()。
    • 在一個子句中,函數前面是一個 Operators 運算符號,運算符號前面是一個字段。函數對特定的 Jira 數據或括號中函數的內容執行計算,以便函數搜尋的結果正確,然後再由使用該函數的子句再次搜尋。
  • Day29 - 解析 JQL 讓 Automation 更進階 - 搜尋文字欄位的主要語法
    這篇文章我們會認識 Jira 中文字串欄位的搜尋語法。

    • 可以使用各種運算符號和修飾符號。可使用包括:精確搜索(片語)、通配符搜索:? 和 *、模糊搜索:~ 、前綴和後綴搜索、鄰近搜索。

文章寫完了,還有嗎?

大家以為我文章寫完按下發文就沒事了嗎?
我還有以下的工作要做呢!!!

  1. Complete II3D Sprint 3
    最後,我在這最後一天寫完文章並完成 Sprint 3 的任務,按下 Complete II3D Sprint 3。
    https://ithelp.ithome.com.tw/upload/images/20231016/20162673xI7twShYoe.png

  2. Create a retrospective
    當我在 Scrum board 按下 [complete sprint] 完成這次 Sprint 1 後,回到 Boglog 後,立即彈跳出一個對話框,寫著 Create a retrospective 。
    https://ithelp.ithome.com.tw/upload/images/20231016/20162673RJXFVI3Ydp.png

  3. call to action
    這 30 天我學習很多,也花很多時間、犧牲很多睡眠時間,回想起來真的很感謝 30 天前開始動手寫文章的自己,因為我相信我可以試著完成這件事,對於我對軟體開發的流程、工具自動化熟悉度、軟體硬知識等都是飛快的成長
    這段時間和這 30 篇文章對我而言是美好的事物。

我也謝謝我的同事、主管和社群朋友們對我的打氣,也願意花時間教我相關知識。

接下來我應該不會停下來,我也在我的 retrospective 文件寫下 Action items。

  • 學習 Git 並把過程寫成文章
  • 我是怎麼寫 Python 跑 Commit 的我是怎麼寫 Python 跑 Commit 的
  • When a deployment to production fails → then send slack message
  • 報名明年的 iThome ironman 比賽
    https://ithelp.ithome.com.tw/upload/images/20231016/20162673bKmzmBaTLV.png

謝謝願意花時間觀看我的文章的朋友,希望你們會覺得有收獲而不是浪費時間

就算是浪費時間也是浪費在美好的事物上啊

THE END


上一篇
Day29 - 解析 JQL 讓 Automation 更進階 - 搜尋文字欄位的主要語法
系列文
每天利用 Jira 開單時,練習一個密技,應該不是薪水小偷吧!?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言