Thoughts, stories and ideas.

在倍洽中直接操作 GitHub

在倍洽(BearyChat)目前提供的 众多机器人 里, GitHub 机器人 是非常受欢迎的一个,它最大的价值在于让 GitHub Flow 变得更加有效率,在保证质量的基础上提高开发速度。但也有不少用户向我们反馈希望 GitHub 机器人能做更多事情,比如在倍洽里直接对 GitHub 进行一些操作,而不仅仅是事件提醒。

操作 GitHub 我们当然会想到 GitHub 自家推出的 Hubot,搜索了一些现有的 Hubot 插件,发现都没有完全满足需求的,不如「自己动手丰衣足食」吧,我们自己编写了一个 Hubot 插件,接下来先看看它都可以做到什么?

场景 1:添加 Issue

我们经常会在讨论组里讨论各种想法,或者收到各种各样的用户反馈,在短暂的沟通后,如果达成共识。工程师就去在对应的项目上建立一个 Isuue,做一个备忘,并逐步添加更具体的细节,和实现方案。 利用 Hubot 现在我们可以更方便的直接在讨论组添加 Issue,一气呵成。

大家再也不用担心漏掉需求了。

场景 2:检查自己的 Issue 和 Pull Request

对于习惯于专注工作的工程师来说,每天有稳定的时间写代码和 Code Review 是提高他们工作效率的秘诀。

通常每天上班开始,先去看看目前手上自己需要做的工作,去 Github 上查看所有分配给自己的 Issue。

每天也会安排出专门的 Code Review 时间,去看分配给自己的 Pull Request。

这是只需要对 Hubot 说 github issue mine [repo] 就可以获取某个项目下自己还需要完成的 Issue 和需要自己 Review 的 Pull Request。

当然很多情况下,一个人不仅仅需要维护一个项目,团队里很多项目都有你的参与,这时你也可以通过 github issue all 获取在整个企业下,分配给自己的所有工作。

场景 3:发布 Release Tag

每次完成一个里程碑或者每一次代码上线,我们团队都会为添加新的 Release Tag, 这非常有助于我们的部署流程,我们可以使用 Tag 来安全的上线代码,已及回滚代码。

同时,每次发布 Release 的内容也是一个很有用的信息。我们在使用一个叫 legilimens 的工具,获取这次 Release 对比上一次有哪些新的 Pull Request 被合并。

这个列表一方面成为了验证功能是否正常的一份 Checklist,另一方面当上线后发现问题时,可以帮助我们快速定位问题可能是哪里引起的。

但是这个流程之前是比较复杂的,每次都要去 GitHub 的表单填写很多内容,经常容易操作错误。如果用机器人用问答的形式来发布 Release,就降低了操作的难度,也在一定程度上降低了出错的可能性。

以上这些功能现在都是用 hubot-githuber 这个 Hubot 插件实现的,这个插件也在 GitHub 上 开源,功能也会不断完善。

使用的时候需要注意的是,需要预先设置好 HUBOT_GITHUBER_ACCOUNT 环境变量(通常是企业的 organization name),机器人配置好后,使用者需要对 Hubot 私聊 github token 把自己的 GitHub access token 告诉 Hubot。

希望这个插件能对你有帮助。

comments powered by Disqus