svn + 钉钉机器人制作简单的代码跟踪系统

Webhooks

在开始今天的主题之前,让我先说说 Webhooks。

我在很早之前使用一个第三方的支付聚合平台 ping++ (www.pingxx.com)

在用户支付完结后,通过「Webhooks」将支付结果推送到我们自己的服务器,然后我们就可以继续做后续的订单完结等操作。

这里的「Webhooks」,它能在「某个结点」把我们所关心的「某些数据」推送给我们所定义的接收链接上,继续后续操作。

又比如在 github 上,有人对你发了一个 issue,然后系统自动触发这个 webhooks,将 issue 信息推送出来,你只要定义好接收的接口即可。

在很多地方「Webhooks」已经成为需要或者有可能需要为后续提供定制化操作的「枢纽」,一直是我所钟爱的一个概念。

基于 svn + 钉钉的代码监控系统

收回我们今天想要做的一件事:如何利用 svn 的 Webhooks,加上钉钉群机器人,来构建我们的代码监控系统。

相信大家已经知道我怎么做了,直接进入主题。

svn Webhooks

在现实开发中,很多企业或者公司,基本都会使用 github,国内的码云、coding.io 等代码托管平台,或者利用 GitLab来搭建基于 Git 的代码版本控制。但还是有很多使用 svn 来做版本控制。

在 svn 中,也有多个 Webhooks:

目前 svn 提供 5 个 hooks,其中重点说说下面三个:

hook含义参数
start-commit它在提交事务产生前已运行,通常用来判定一个用户是否有权提交版本库的路径,和要进行提交的用户名
pre-commit在事务完成提交之前运行,通常这个 hook 是用来提交的信息是否不符合要求而不允许提交版本库的路径和正在提交的事务名称
post-commit它在事务完成后运行,创建一个新的修订版本大多用这个 hook 来发送关于提交的描述性电子邮件,或者作为版本库的备份,本文主要利用这个 hook 推送信息到钉钉群,做为监控的源头

具体可以参考网站的详细说明:SVN版本管理详解 www.kancloud.cn/i281151/svn…

注: svnlook 命令是个好工具,可以用于查看很多 svn 版本信息,推荐看看

钉钉群机器人

有了 svn hooks,那么我们就需要一个接收 hooks 传过来数据的「接口」,作为监控,我们第一个关心的是:只要有同事提交代码了,我们能实时接收到消息。

市面上有很多这种接收信息的工具,如 零信、Slack、BearyChat、微信模板消息、企业微信、钉钉群机器人等等;只要能把消息实时送达到我们的手机上即可。

本文重点推荐使用「钉钉群?」,主要因为简单,而且不需要任何「成本」,如零信等有信息条数的限制和 money;模板消息、企业微信都需要所谓的 access token,需要借助服务器开发。

但钉钉机器人呢,完全可以不借助任何东西就可以做到「无缝」对接 svn 的 hooks。

下面让我们来看看怎么如何创建群机器人的吧:

1. 创建一个只有自己的「内部群聊天」:

2. 创建机器人

3. 选择「自定义」

4. 选择添加后,随便给机器人起个名字

这之后,记得复制出来该机器人的 Webhook 链接,如:

https://oapi.dingtalk.com/robot/send?access_token=0ca87986b61166d06a9a588c0f7ba648639208bd1f02971655fc5927b0620***
复制代码

5. 创建成功后,机器人会发一条消息出来:

好了,有了这个链接,我们就可以结合 svn 的 post-commit 来接收提交的基本信息了。

注: 至于钉钉群机器人 Webhook 如何使用,可以参考钉钉官网说明:open-doc.dingtalk.com/docs/doc.ht…

post-commit to 钉钉

本文实现最简单的监控:只要有同事提交代码,就将信息及时推送到钉钉群里,这样只要在这个群的所有同事都能实时收到推送消息了。

这时候,只要在 post-commit 文件中,将 svn 的信息利用 POST 方法请求钉钉群机器人的链接即可。

其中,HOOKS 就是上文的钉钉机器人的链接,payload 可以参考钉钉群机器人使用说明。

由于不同系统的 svn,可以对应使用不同的脚本语言来编写推送代码,本文在 Linux 环境下,所以直接用 shell 脚本语言。

最后可以试验下,看看之前我搭建的监控效果:

总结

其实,钉钉群机器人,也是一个 Webhook,通过一系列不同服务的 Webhooks 的串联,将我们需要了解的信息,最终实时传送到我们的手机里,我们能及时得到信息。

如本文的系统,同事提交代码 -> svn post-commit Webhook -> 钉钉群机器人 Webhook -> 推送到钉钉群里。

因为时间关系,抛砖引玉,如何将 Webhooks 用到极致,实时的监控和得到我们所需要的信息,这是本文所想要阐述的,希望对你有所作用。

「完」


coding01 期待您继续关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值