Gem gitlab-mail-receiver - 让 GitLab 支持邮件回复功能

huacnlee · 2015年08月31日 · 最后由 huacnlee 回复于 2015年10月23日 · 4146 次阅读

你们公司在用 GitLab 管理源代码吗?有在大量用 Issue 和 MergeRequest 么?有觉得需要一个想 GitHub 那样直接回复提醒邮件就能在 GitLab 相关内容上面回复么?

gitlab-mail-receiver 就能帮你实现这个需求!

功能

  • 支持 POP/IMAP 协议;
  • 独立进程启动服务,定期检测邮件处理回复;
  • 收到邮件回复后会做的内容解析,定位 Issue/MergeRequest 并自动创建回复;

处理流程

               /-->  [ Notify ] ----------------> [Mail Server] <---> [Mail Client]
{ GitLab } ---/                                         ^
     ^                                                  |
     |-------< [ gitlab-mail-receiver ] <---- check --> |

原理

这个 Gem 会往 GitLab 的 Mailer Notify 里面覆盖几个函数,将邮件的 reply_to 改成类似这样 your-mail+group/[email protected], 其中 group/project 是项目名称,!100 表示 Issue 编号 100。

这样用户收到的 GitLab 通知,回复地址将会带有 Issue 信息,邮件其实是回发到 [email protected],gitlab-mail-receiver 这边将会解析出来,对应到 Issue/MergeRequest。

所以,你需要你的邮件服务器支持 + 号(PS: Gmail 是支持的)

使用方法

https://github.com/huacnlee/gitlab-mail-receiver

太赞了,平时收到邮件再点开回复的流程太麻烦,这个工具大大节省时间。

赞,大神就是神速!

mr 也支持?

#3 楼 @fengmk2 MR 和 Issue 的回复是同一个东西 Note

Note model 是多态的设计,所以很容易实现。

#1 楼 @_kaichen 你们也在用哇?赶紧试试,顺便帮忙试试流程跑起来是否顺畅

当初为这个问题在 Gitlab 提了一个 issue,最后。。。😂

https://github.com/gitlabhq/gitlabhq/issues/5837

https://github.com/gitlabhq/gitlabhq/tree/master/doc/incoming_email 有一个这个选项,我配置之后不行,自带的不能用么?邮件收发正常,就是不会出现在 issue 里面

GitLab 8.0 以后,不需要我这个了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号