Github GitLab release update notification slack bot

MorrisLin
Jan 24, 2022

TL;DR: GitReleaseNotiSlackBot

在加密貨幣交易所on-board三週(中間放了兩天疫苗接種假),大部分的時間都在看關於各種公鏈與token的資料以及組內專案架構,交派的任務都是簡單性質的,剛好同事有說之前做到一半的Git release check bot因為他沒時間繼續完成,問我有沒有意願來完成,我當然是樂意之至。

首先為什麼需要關注Git release更新的情況呢?一般我們在開發軟體時,會使用很多第三方的Lib,基本上除了有好用的新工能更新或者是重大的Bug或是漏洞,我們需要即時更新Lib之外,應該不會需要去關注更新的資訊。

會需要隨時關注Git release資訊是因為我們公司有運行公鏈的FullNode(FullNode是什麼)所以如果沒有關注到Hard fork(Hard fork是什麼)的話就會對我們的交易產生問題,所以需要一個Bot來每天告訴我們各個公鏈的release資料。

雖然我們Team是使用JAVA做開發,但想到這種request跟slack bot的功能,我選擇了Python來做開發,原因是因為開發速度快。

Repo: GitReleaseNotiSlackBot

先上成果圖:

有做檢查內文功能,設計了關鍵字功能,可以pushpin關鍵字

使用教學:

首先需要建立Slack bot app

From scratch

建立完APP後進入OAuth & Permissions,在Install to Workspace之前需要先設定Scopes

新增這些Scopes,在點擊Install to Workspace

成功後可以看到Bot User OAuth Token

將這個Token複製起來,然後在channel中加入你新增的app

clone GitReleaseNotiSlackBot 並在Setting.py中設定資訊

# slack channel name
slack_channel = "slack_channel" #這個是你要發送到的channel
slack_token = "slack_token" #剛剛儲存起來的token
flag_list = ['hardfork', 'fork'] #你要特別關注的關鍵字
git_release = {
"ETH": {
"code": "ETH", #你要顯示在Slack的專案名稱
"repo": "https://github.com/ethereum/go-ethereum/releases",
"release": "https://api.github.com/repos/ethereum/go-ethereum/releases",
"git": "github" #支援GitHub以及GitLab
}, "AVAX": {
"code": "AVAX",
"repo": "https://github.com/ava-labs/avalanchego/releases",
"release": "https://api.github.com/repos/ava-labs/avalanchego/releases",
"git": "github"
}
}

修改完後,照著Readme中的設定執行,就可以看到Channel中Bot發出的訊息了。

--

--

MorrisLin

Back-end engineer turn into Blockchain software engineer