關於我在極狐GitLab造機器人這件事兒我覺得很酷

語言: CN / TW / HK

我在參與 極狐GitLab創作營 JIHULAB 101 活動的時候,發現極狐GitLab官方啟用了一個機器人,會在issue哪裡進行服務,我就突發奇想,很多地方都有自動回覆的客服機器人,那在極狐GitLab能不能造個機器人玩?

我發現極狐GitLab官方的機器人並不能做到客服回覆的水平:

我覺得我可以造一個玩玩,所以,出現瞭如下的畫風:

機器人思路

首先,本文只討論在極狐GitLab實現機器人的思路,並不包含NLP自然語言處理和人工智慧部分,這部分可以有現成的雲服務進行整合,我就不多說了。

一個使用者被@以後有沒有什麼事件或介面呢?找遍API文件,並沒有專門的API介面來提供,那我就開始想辦法了,怎麼才能知道有人@我了呢?

當有人@我以後在我的待辦列表裡會出現一條資料,這個待辦列表是有API介面的,介面地址是:https://jihulab.com/api/v4/todos?state=pending&per_page=100

然後獲得待辦列表,裡面有專案ID、issue的ID、型別等資訊,這樣我就知道有人@我了,並且知道專案ID、issue的ID、內容,這就好辦了。

然後去發生事件的ISSUE介面:https://jihulab.com/api/v4/projects/:id/issues/:issue_iid,就可以進行回覆和檢視詳情了。

回覆完以後在待辦事件裡標記為已完成:https://jihulab.com/api/v4/todos/:id/mark_as_done,這樣就算處理完了。

實現步奏

  1. 掃描待辦列表:https://jihulab.com/api/v4/todos?state=pending&per_page=100
  2. 獲得ISSUE詳情:https://jihulab.com/api/v4/projects/:id/issues/:issue_iid
  3. NLP處理內容:自行對接各種機器人介面
  4. 回覆ISSUE:https://jihulab.com/api/v4/projects/:id/issues/:issue_iid/notes
  5. 標記已完成:https://jihulab.com/api/v4/todos/:id/mark_as_done

用處

在極狐GitLab擁有自己的客服機器人不是一件很酷的事情嗎?