2017年5月31日 星期三

Integromat gitlab issues to google sheet

如果 Gitlab issue 有異動的時候, 增加一筆紀錄到 Google 表格
IFTTT 的概念, 但是 IFTTT 沒有支援 Gitlab, 所以另外找了一個服務叫做 Integromat
目前的用量還在免費範圍


Part 1 - 和 Gitlab 連接


  1. 首先, 設計一個腳本
  2. 由某個服務開始
  3. 選擇 Gitlab
  4. Watch issues 正好符合需求
  5. 和 Gitlab 掛接
  6. 建立掛接需要的連線
  7. 填入連線需要的 URL, 然後重點是 Access Token, 取得方式看下一張圖片
  8. 在 Gitlab 網站裡面產生一組給 integromate 的 token
  9. 將這組 token 複製起來, 貼到步驟 07 的欄位上
  10. 然後選擇要抓取的 project
  11. 最後按 OK 完成

Part 2 - 取得 Project issues 更新部分的資料

  1. 在原來的設計中再增加一個腳本
  2. 選擇 Get single issue
  3. 一樣挑選要建立的連接, 目前的例子是和上游 Watch issues 選擇相同的連接, 最後一個欄位選擇抓取 issue ID

Part 3 - 將異動紀錄寫入 Google Sheet


  1. Gitlab 做完之後, 接下來要把資料送去給 Google Sheet, 一樣 Add module
  2. 選擇加入 Google Sheet
  3. 接到上游傳來資料的時候, Google Sheet 要做的事情
  4. 一樣要和 Google 建立連接
  5. 設定一個連線的名稱
  6. 要求帳號授權
  7. 在剛才授權過的 Google 帳號下可以存取的 表格, 選擇一個
  8. 格式是事先做好的, 這邊要注意的是, Integromat 只能抓到第一列的欄位資料
    如果有用到多列凍結檢視的話, 是有點不方便
  9. 在每個空欄位中, 點進去就可以讓你選擇 Gitlab 資料去對應
  10. 最後就像是這樣子

補充資訊

檢查 Google Sheet 寫入的資料發現, 日期是以混合格式的字串方式寫入
Ex: 2017-04-10 03:26:29 UTC
有日期、有時間、後面還跟了一個 UTC 文字, 而且還不是 UTC+8 的時間
所以還需要透過 excel 函式的方式將文字處理成日期格式
Ex: date(mid("2017-04-10 03:26:29 UTC",1,4),
             mid("2017-04-10 03:26:29 UTC",6,2),
             mid("2017-04-10 03:26:29 UTC",9,2),+int(mid("2017-04-10 03:26:29 UTC",12,2)+8/24))
這些要寫在 Integromat 裡面