到目前為止,要讓Bot能查詢 build 狀態、commit 資訊等等,都仰賴著GitHub API,它就像一扇窗戶,讓外部應用程式(Bot)能和 GitHub 對話
API(Application Programming Interface)是一種「應用程式之間的介面」
簡單來說,它就像餐廳的服務生:
所以,API 讓 Bot 能發出「請給我最新的 workflow 狀態」這樣的請求,然後 GitHub 回傳一份 JSON 格式的資料給它
GitHub API 是 GitHub 提供的官方服務,任何人只要有正確的 Token/授權,就能透過 API 查詢或操作 repository 的資訊,例如:
這就是為什麼 Bot 能「知道」最近一次 build 是成功還是失敗。
如果說 GitHub Actions 是 DevOps 的「執行引擎」,那麼 GitHub API 就是外部應用程式跟 GitHub 溝通的「語言」
我的 Discord Bot 正是透過這個語言,才能查詢到 commit 和 workflow 狀態,未來更可以透過它做到更強的互動