GitLab 搭配 Slash command 快速建立 ChatOps

在 HipChat 依然主流、Slack 尚未席捲市場的那個年代,那時建立 ChatBot 的工具還不像現在這麼豐富、中文教學資源也比較匱乏,但在當時就已有不少公司藉由 HipChat + ChatBot 的方式實現自動化及 ChatOps。由於透過此種方式,團隊成員只要在即時通訊工具中呼叫 ChatBot 即可自動完成許多重複性工作,可說是 Dev 與 Ops 兩方都十分喜愛的工具。 本文就讓我們試著運用 GitLab CI 搭配 Mattermost slash command 實現 ChatOps,試著在沒有 ChatBot 的狀況下,快速建立 ChatOps。(本文撰寫時,使用的 GitLab 版本為 13.8 。) (本文同步發表於 Medium。) 過程紀錄 要透過 GitLab 實現 ChatOps 非常的簡單,基本概念就是將 GitLab CI Pipeline 視為是一個幫你執行自動化腳本的平台,在 CI Pipeline 中規劃各種 CI Job,接著再透過 Mattermost slash command 去 Trigger 特定的 CI Job 幫我們完成想要執行的重複性工作。 以下先說明必要的設定步驟。 啟用 Mattermost slash commands 首先請參考艦長上一篇文章《GitLab 啟用 Project integration - Mattermost slash commands》的步驟,建立一個專案,並且啟用此專案的 Project integration - Mattermost slash commands。...

February 6, 2021 · Cheng Wei Chen

GitLab 啟用 Project integration - Mattermost slash commands

日前收到私訊提問,GitLab 社群朋友在讓 GitLab 串接 Mattermost slash command 時遇到了一些狀況,但根據艦長的印象,slash command 的背後是直接透過 GitLab API 以 POST 的方式進行串接的,理論上不太會遇到問題。於是好奇心發作的艦長,就頭洗下去的做了一番測試,同時將串接步驟也留做紀錄於本篇文章中。(本文撰寫時,使用的 GitLab 版本為 13.7 。) (本文同步發表於 Medium。) 過程紀錄 Mattermost 與 GitLab 相同,都可以選擇自架或使用官方提供的 SaaS,因此如果會出現問題,會不會是 Self-hosted 與 Cloud 的問題呢?故此我們會有以下四種串接情境。 gitlab.com + Mattermost Cloud gitlab.com + Self-hosted Mattermost Self-hosted GitLab + Mattermost Cloud Self-hosted GitLab + Self-hosted Mattermost 上面四種情境要串接 Mattermost slash commands 的操作步驟都是大同小異的,以下就讓我們逐一示範。 gitlab.com + Mattermost Cloud 第一個示範組是最不會出錯的 Cloud SaaS 組合。 在開始設定之前,請先確定你擁有 gitlab.com 與 Mattermost 的足夠權限,GitLab 這邊需要有權限設定 Project 的 Settings;而 Mattermost 則需要管理 Integrations 的權限。...

January 18, 2021 · Cheng Wei Chen