Back
Featured image of post 我用极狐买盒饭

我用极狐买盒饭

前言

最近搬到新校区,由于附近生活设施还不是很完善,陆陆续续加了很多群,光是盒饭群就加了不下于三个。每天能恰到好处把我从迷迷糊糊中“拯救出来的”,正是手机收到各个群@所有人的响铃震动。不仅是“不合时宜”的通知,加了那么多群,有时候也会分不清各个群的用途。有没有一种方式,能够将所有类型的群整合为一个,化繁为简,减少恼人的通知,又能高效找到所需要的信息呢?这个时候,我想到了我所实习的公司产品,极狐GitLab。

先来说说什么是极狐GitLab。

极狐GitLab是GitLab DevOps平台的中国发行版,一套完备的一站式DevOps平台,从根本上改变了开发、安全和运维团队协作和软件构建方式。极狐GitLab从构思到生产发布,帮助团队提高生产效率,将迭代周期从数周缩短至几分钟,加快软件创新发布速度,节省开发成本。

极狐GitLab (GitLab.cn)

诶,看起来这个平台应该是程序员、产品或者运维那些人使用的吧?

No,No,No!

虽然极狐GitLab确实提供了很多高大上,看起来和我们的目的不沾边的工具,但不代表它不适合用来帮助我们买盒饭(搭建一个集中的信息交流平台)。接下来我们将使用极狐GitLab的议题功能,搭配自己搭建的可爱的Taicang-bot,实现高效的买盒饭

基本思路

极狐GitLab议题功能允许用户发布信息,并且具有添加标记和评论的功能。简单来说,我们可以把议题理解成“帖子”,标记是“帖子的分类”,而评论则提供了“跟帖”功能。同时我们可以根据不同的需要,为议题设置不同的模板,例如“拼车”、“拼好物”、“闲置物品”、“互帮互助”等。最终议题展现的效果大概如下:

新的问题

由于大多数用户还是第一次接触极狐GitLab,从未使用过议题功能,难免出现忘记添加标记的现象。在这个时候,如何去提醒用户添加标记呢?这个时候,我想到了JiHu Bot,一个勤劳的机器人,每当你忘记给议题添加标记的时候,都会提醒你。

所以,为了提醒用户给发布的“帖子”打上“分类标签”,我们也可以打造一个机器人,一个专属于校园的Taicang-bot。

啊!又出问题了

虽然机器人能够帮我们提醒用户给议题打上标记,但是用户作为访客,并没有权限给议题添加标记。如果要让用户实现添加标记,用户至少需要具备“Guest”身份。如何解决这个问题。苦苦思索了一番后,我想到了一个迂回战术:

  1. 当用户发帖后,机器人在提醒用户的同时,同时给予用户“Guest”权限。因为议题模板中已经设置了标记,用户在之后的使用中将不需要手动地再添加标记。
  2. “Guest”身份只能在提交议题时添加标记。议题提交之后便不能对标记进行修改。因此我们利用议题的评论区,让用户评论需要增加的标记,然后机器人将代为添加。

开始搭建Taicang-bot

搭建机器人的思路其实非常简单,只需要利用Webhook接收议题和评论事件,然后调用API接口对用户进行通知以及提权即可。相关的API如下:

  • 发送评论:POST /projects/:id/issues/:issue_iid/notes
  • 添加用户并提升权限:POST /projects/:id/members

最后,利用极狐GitLab的持续集成和持续交付,可以非常容易地将机器人部署到我云端的Kubernetes集群中,这样每次更新机器人代码,都可以快速实现打包和部署。

Taicang-bot 最终效果

Taicang-bot 未来可能集成的功能

目前可以看到,Taicang-bot的功能还比较单一,主要还是负责维护议题的标记。未来,随着用户发布的信息增多,Taicang-bot将集成文本审核的功能,通过接入云服务商的文本审核,实现将不友好,违反法律法规的言论自动清理。

Licensed under CC BY-NC-SA 4.0