-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CoolQ/DingTalk 实现CI/CD消息推送到群 #31
Comments
Open
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
基于Gitlab 的 CI/CD 流程搞好后,需要将CI Job或流水线的执行状态通知到给相关QA或者开发人员,整个大前端组,项目系统工程数量>15个,所以有必要聚合CI/CD相关自动化流水线信息,将相关需要关注的信息通过机器人自动推送到群里。
工作上常用群的话选择有微信群,钉钉,QQ群等。微信现在限制了2018年之后注册的新用户无法通过脚本走API登录,很难搞到2016年注册的小号,因此只能选择钉钉群和QQ群了,因为我司不用钉钉,有自己的OA系统,所以就尝试了酷Q的机器人推送方案。下面将详细介绍实现过程。
钉钉机器人消息推送到群
DingTalk (钉钉) 提供了群机器人,提供 WebHook 来实现,特别的方便,消息发送还支持各种格式的模板,比如text、link、markdown等,增强了使用情景和体验。关于钉钉自定义机器人,官方文档也很详细,这里不多介绍实现过程。详细见:自定义机器人
通过 shell script实现模板信息发送
以下主要是消息通知到群的 shell script.
效果
基于酷Q搭建 QQ机器人消息推送到群
搭建服务之前,需要了解CoolQ是如何工作的,以及如何通过 CoolQ HTTP API 来推送信息,官方文档:https://cqhttp.cc/docs/
本人在windows 非 Docker 的方式搭建过了一次,然后再在 Linux 系统上搭建过一次,总体觉得,还是Docker 比较方便。安装官方提供的 Docker 服务,部署测试通过后,写对应的脚本来实现消息推送到QQ群。
Docker 服务安装
官方文档:Docker,以下是个人操作步骤记录。
(1)拉取 cqhttp 镜像
(2)新建一个文件夹,用于存储 酷Q 的程序文件
(3)后台运行 docker 服务
docker run -d --rm --name cqhttp-devops -v $(pwd)/coolq:/home/user/coolq -p 9000:9000 -p 18936:5700 -e COOLQ_ACCOUNT=你要登录的QQ号码 -e CQHTTP_POST_URL=http://你的服务器ip:8080 -e CQHTTP_SERVE_DATA_FILES=yes richardchien/cqhttp:latest
介绍一下简单的docker操作命令给新人,查看 cqhttp-devops 的 docker日记可以用
docker logs -f cqhttp-devops
, 删除命令:docker rm -f cqhttp-devops
(4)访问
http://服务器ip:9090
访问正常后,表示服务正常,点击
连接
,输入默认密码MAX8char
,即可进入虚拟机,登录机器人用的QQ账号即可,安全问题,酷Q限制必须是开启了登录保护
的QQ,才可以登录。登录成功后,运行CoolQ Air , 会如下图所示,可以查看HTTP API的应用目录
(5)修改 AccessToken
这两个东西是要在接口请求的时候做认证的,保证安全性,避免被别人直接走接口发送信息。
进入第四步骤中 http api 对应的目录下,找到自己登录的 qq 号对应的json文件修改即可。比如 123456.json,如果没有,就是
.ini
后缀,详细见官方文档说明 Configuration我的配置是如下,操作时改为自己的即可。
测试消息推送
创建一个群,或者拉你所用的QQ机器人到一个群里,使用curl 方式或者 postman 测试都可以,也可以使用 node.js 脚本测试
测试方式1:postman get请求测试
测试方式2:nodejs代码测试:
效果:
结合 Gitlab CI 流水线最终效果:
到此,就完成了测试了,整个过程已经联调通,最后至于使用shell来直接请求推送消息,还是通过node.js、python等脚本来推送消息,都可以,看个人喜好了。
搭建过程,试了远程执行shell script和node.js 脚本,不亦乐乎(注意脚本安全性)。
自动消息回复
成员加群,自动发送欢迎消息,自动回复信息等,可以通过CQHttp提供的 事件上报 来实现。
demo代码:https:/1ziton/cqrobot
The text was updated successfully, but these errors were encountered: