如何通过Azure DevOps实现Git仓库与钉钉的集成联动?

2026-05-22 22:491阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计852个文字,预计阅读时间需要4分钟。

在上一篇文章中,我们提到了Azure为我们提供了可定制的web hook。在我的实践尝试中,我设想了一个场景,希望可以实时收集团队中所有开发人员的代码提交记录。这样,我就能通过这些信息更好地了解团队的工作进度和协作情况。

上一篇文章中我们提到了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的其他功能。

本文共计852个文字,预计阅读时间需要4分钟。

在上一篇文章中,我们提到了Azure为我们提供了可定制的web hook。在我的实践尝试中,我设想了一个场景,希望可以实时收集团队中所有开发人员的代码提交记录。这样,我就能通过这些信息更好地了解团队的工作进度和协作情况。

上一篇文章中我们提到了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的其他功能。