企业微信机器人

机器人 #

hover机器人,卡片右上角的编辑按钮可以看到机器人配置说明。 gitlab的webhook可以在mr时发一个请求。企业微信的机器人可以接受消息,但是两边的消息格式不同,需要有一个中间人进行翻译。

总体流程是:发生了mr,发请求到服务器,服务器根据mr消息中的user找到user所属的群,向该群的机器人发送一条消息,同时消息内容要根据mr的action应该不同,有些mr消息(更新,关闭等)不需要处理。

解析mr #

mr的数据我们只需要其中几条信息。

{
  "user": {
    "name": "",
  },
  "object_attributes": {
    "url":"",
    "action":"",
  }
}

人与机器人的映射 #

需要两个表来实现这个映射。

  1. user <-> group
  2. group <-> robot

因为关系比较简单,可以暂时不用数据库,就手动创建好变量,在代码中维护就行。但是如果数据多来还是需要用数据库。

给机器人的消息 #

发给机器人的消息格式(https://work.weixin.qq.com/api/doc/90000/90136/91770)

我们使用markdown格式,可以把长长的链接写成一个超链接的形式:

{
    "msgtype": "markdown",
    "text": {
        "content": "【张三】【发起或合并】了mr【[编号](http://123456)】",
        "mentioned_list":["wangqing","@all"]
    }
}