因为用docker安装的sentry,当使用sentry-dingding 这个插件的时候遇到了There was an internal error with the Plugin, 'Event' object has no attribute 'id' 问题,作者没有更新修复这个问题,所以考虑使用魔改python包的方式来修复。

  1. 我使用的是onpremise docker-compose安装的,所以首先要登录到docker容器中
docker-compose exec web /bin/bash
  1. 找到sentry-dingding项目目录
cd /usr/local/lib/python2.7/site-packages/sentry_dingding
  1. 编辑plugin.py文件

如果docker中没有vi,需要先装一下

apt-get update
apt-get install vim
vi plugin.py

修改60,61行为

                    message=event.title or event.message,
                    url=u"{}events/{}/".format(group.get_absolute_url(), event.event_id),

这个是参考了这条PR https://github.com/anshengme/sentry-dingding/pull/23 ,但是没有被合并到项目里,所以也不得不用这种魔改的办法。

  1. 保存文件,然后重启docker
docker-compose restart

完成!


update 07-23
新发现一个哥们直接做了插件,所以参考他的项目就好了,不需要魔改
https://github.com/FeSeason/sentry-10-dingding