實現 Jira 與 Slack 串聯自動化筆記

主要記錄自己不熟悉的軟體但又期望自動化的實作過程。

前言

身為 PM 在處理版本迭代時,不外乎都需要通知新版本上線、新功能來了,確保利害關係人都可以被同步到訊息。
本次先以「版本發布」作為實現自動化的起始篇章,解決「上版」時資訊可以同步通知,減少複製貼上的流程,確保都能在第一時間通知 product team。
也因目前公司主要使用 Jira 進行開發管理,Slack 用來日常工作的溝通,就一起來看看整個思路的過程吧!

目標

本次主要想解決有幾件事:

  1. 自動化
  2. 資訊同步
  3. 減少往返不同頁籤的時間

而這三件事情背後都反應了原始的需求,像是通知自動化可以減少人工操作忘記同步的問題,也因自動化的過程可以讓資訊被整合,設置同樣的資訊出口,來打造資訊最終點,確保大家都是從同樣的地方得知資訊。

步驟

有了先前整合 Asana 的經驗,原本以為在操作自動化上可以比較順利,結果我真的太錯估了。
目前公司使用的開發管理軟體是 JIRA,比起 Asana 更像是一個給開發人員用的軟體,而非以專案導向的操作,所以身為 PM 的如果沒有稍微懂點技術,在操作上我認為相對有難度。

Image

前置作業

首先,雖然是單純的版本綁定的通知,但是過去我們在開發的工單上比較沒有落實工單控制版本這件事,因此事前花了一點時間把近期的版本內容全部都梳理一遍。

就是為了接下來的版本內容可以一致,準備好讓開發人員「依單行事

Jira 操作

  1. 進入 project 的「版本頁」,會看到有個閃電的符號,點擊後就可以找到本次主要目標,發布版本後傳送訊息。
    Image

  2. 一開始會進入到規則詳細頁,但基本上這邊操作上都很直覺,可以決定負責人是誰或是規則成功與否是否需要寄送 mail。
    Image

  3. 下一步時,會看到幾個我們一定需要填答的欄位
    Image

    1. 必填欄位 - Webhook URL

      • 點擊後可以看到直接連到 slack 頁面,這時你會需要確認你在 slack 是否有可以新增應用程式的權限,來確保接下來的串聯是順利的。
        Image
      • 選擇自己 slack workspace 還有用來通知的頻道 or 私人訊息
        Image
      • 到下個步驟後就可以看到 webhook URL,並點擊複製,於此同時也能異動應用程式 icon or 通知的名稱
        Image

      到這邊 slack 的操作就告一個段落了!

    2. 必填欄位 - 訊息
      可以看到預設的訊息只有版本的名稱還有發布的日期參數,但我知道我期望可以通知到的內容還有版本內的子項目,因此開啟了三個階段的 debug 之路。

      • 基礎版:使用預設訊息通知
        具備了哪個版本 & 發布日期
        Image
      • 進階版:因為我也想把實際在 Jira 上的專案版本 link 放上來,因此透過原本官方給的參數 + slack 的字樣找到了放上版本 link 的方式
        1
        myCompanyUrl/projects/{{version.project.key}}/versions/{{version.id}}/tab/release-report-all-issues
        myCompanyUrl 是整個 Jira 你們所用的網域,記得抽換
        Image

      哇!看起來很棒對吧,只差一點點了!

      • 精緻版:把版本內的項目都放上去
        為了達成這個目標,我真的苦惱了一陣子,透過了關鍵字還有 Jira 本身的參考範本,我找到了需要搭配 JQL 才能實現的內容

        1. 準備自己專案的語法 + 參數
        2. 在官方預設的自動化流程新增操作
          Image
          1
          project = {{version.project.key}} AND fixVersion = {{version.id}} ORDER BY priority DESC, key ASC
        3. 回到下一個步驟的 slack 訊息,加上語法
          1
          2
          3
          {{#lookupIssues}}
          * <{{url}}|{{key}}>: {{summary}}
          {{/}}
          成功如下圖:
          Image

        精緻版的步驟中,最後顯示版本內的 issue 會需要搭配 slack 在處理文字格式時的語法,才會顯示成功,不然會看到一串沒有經過格式化的參數值優!

終於逐步地完成這個自動化通知了!
整個操作下來蠻慶幸過去有程式的經驗 + 有段搜尋關鍵字的歷練,因為在開啟成功的旅程前,我只有做到最基本版本,嘗試了半小時後因為工時的關係,就先短暫放棄,果然寫程式 debug 也是這樣 XD。

期待這個版本通知後帶來的便利與同步,也期待自己下個優化工作流程的筆記。

參考資料: