Azure DevOps (二) 实现Git仓库和钉钉的联动
上一篇文章中我们提到了azure为我们提供了可自定的web hook,于是我打算实践一下
我假设了一种场景就是,我希望我可以及时收到团队中所有开发人员的代码提交记录,于是乎我想通过web hook打通钉钉的通知,每次有人提交代码的时候钉钉都会发一条消息到开发人员的群里,让大家都知道,谁刚刚提交了代码。(比如在座的各位卷王,希望我周六日提交了代码可以及时被领导看见~)
首先,我们要先在钉钉新建一个通知机器人用来发送通知。
打开钉钉的一个群聊,在管理选项中选择群助手,创建一个自定义机器人
然后我们需要配置一下机器人的一些选项,验证配置中建议用一个就是关键字认证,只有你发的消息里又这个关键词钉钉机器人才会发送这条消息,同时钉钉会生成一个请求的URL
这个请求上带着一个token,是用来区分机器人的,这个要保存好,请求的时候直接请求这个链接就可以,非常简单。
创建好钉钉机器人之后,我们需要自己写一个简单的web应用来接受azure的消息推送,然后调用钉钉的接口把我们的消息推送到钉钉上去。我这里用java写了一个简单的demo
@RequestMapping("/accept") public ResponseEntity<String> acceptWebHook(HttpServletRequest request ,@RequestBody JSONObject body ){ LOGGER.info("收到azure推送过来的消息:{}",JSON.toJSONString(body)); DingTalkDTO dingTalkDTO=new DingTalkDTO("azure推送"+ JSON.toJSONString(body)); RestTemplate restTemplate=new RestTemplate(); ResponseEntity<String> res=restTemplate.postForEntity(DingTalkUrl,dingTalkDTO,String.class); LOGGER.info("钉钉响应结果:{}",res); return res; }
demo编写好之后,我们给他运行到一个公网可以访问到的地址上去。
接下来,我们开始配置azure的webhook,打开仓库的管理,点击左侧的 Service Hook,选择web hooks,然后我们选择触发事件为code pushed,需要要监听的代码仓库和分支
填入我们刚才写好的服务地址,azure就会把消息推送到我们的服务上去,配置好之后我们运行一下看看效果。
我提交了一部分代码之后 ,看一下通知的效果,控制台日志输出已经收到了azure的推送,并且成功的调用了钉钉的接口,发送了通知,并且钉钉也收到了消息。
azure推送的数据结构比较繁琐,我们可以选出自己需要的字段进行加工后,推送适合自己的消息。
到这里azure git仓库和钉钉的交互就完成了,当然还有很多别到花样可以玩,这里我只是简单的写了一个demo,下一篇文章,我们将继续探索azure devops的其他功能。
- Azure DevOps (一) 托管自己的Git仓库
- Azure DevOps (三) 实现和Jenkins的联动
- Git实现从本地添加项目到远程仓库
- [git]设置remote实现多仓库同步
- git实现github仓库和本地仓库同步
- 152 Git 如何实现两个仓库之间进行同步
- 怎么配置git仓库来实现不同计算机之间代码的同步
- Git实现从本地添加项目到远程仓库
- git hook远程仓库实现网站的自动部署
- [置顶] 本地git仓库推送到服务器自建的git仓库实现目录文件同步教程[自整理]
- Git实现从本地添加项目到远程仓库
- 使用 git 命令行实现 commit 到 bare 仓库
- 如何创建一个基于webpack打包的Vue项目,并实现码云上git仓库与本地仓库实现连通
- 自己搭建Git服务器实现SSH以及远程仓库迁移
- Git实现从本地添加项目到远程仓库
- git实现自动化部署,同时push到多个远程仓库
- 2个git仓库共用文件夹的实现
- jenkins+自搭git远程仓库+tomcat实现自动化打包及部署(超详细)
- Git@OSC实现从本地添加项目到远程仓库
- kubernetes+Azure DevOps实现.Net Core项目的自动化部署&均衡负载