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仓库和钉钉的联动的更多相关文章
- Sourcetree 集成 Azure DevOps Server(Git)
概述- SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mercurial和Subversion版本控制系统工具.支持创建.克隆.提交 ...
- Azure DevOps Server:Git权限设置
Azure DevOps Server 权限概述 在Azure DevOps Server (之前名称为TFS)中,权限是一个比较复杂的概念.从权限层级上来说,包括服务器级别.团队项目集合级别.团队项 ...
- 解决macOS git clone Azure DevOps提示身份认证失败问题
macOS的终端输入git clone对应Azure DevOps的Git地址,紧接着输入正确的用户名和密码仍然会提示认证失败.解决的方法是安装微软的Git-Credential-Manager.由于 ...
- Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源
一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...
- Azure DevOps (十二) 通过Azure Devops部署一个SpringBoot应用
文章配套视频专栏: https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536 视频正在努力更新. 上一篇文章中,我们通过 ...
- git——学习笔记(二)远程仓库
GIT杀手锏之一——远程仓库 拥有远程仓库的两个办法 1:搭一个Git服务器 2:在GitHub上免费托管的Git仓库 本地仓库 远程仓库 一.在GitHub上免费托管的Git仓库 电脑: 1. ...
- Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)
之前写过一篇博客"探索TFS Git 库文件换行(CRLF)的处理方式",主要是针对TFVC代码库的. 下面这篇文章说明如何在TFS的Git库中处理代码换行的问题. 概述 在Azu ...
- Git 仓库结构 (二)***
一.GIT工作流程 了解git,首先要弄清楚对象在被git管理过程中所处的4个阶段,分别是: 工作目录 index(又称为暂存区) 本地仓库 远程仓库. 从时间先后来讲,工作目录的内容是你当前看到的, ...
- git学习教程二之远程仓库学习
首先你需要注册一个github用户名,我的github账户是:1654218052@qq.com 由于本地的git仓库和github的仓库是通过SSH加密的,所以我们还需要设置一点东西哦 第1步:创建 ...
随机推荐
- FreeSWITCH 1.10.7 编译(debian 11)
1.安装预备库 apt install -y build-essential gdb gnupg2 wget autoconf lsb-release libtool libtool-bin libt ...
- rust实战系列 - 使用Iterator 迭代器实现斐波那契数列(Fibonacci )
为什么是斐波那契数列 斐波那契数列十分适合用来实战rust的迭代器,算法也很简单,一目了然.这个例子可以用来学习Iterator的使用,十分适合刚学习了rust的迭代器章节后用来练练手. 代码实战 d ...
- .NET6: 开发基于WPF的摩登三维工业软件
MS Office和VisualStudio一直引领着桌面应用的时尚潮流,大型的工业软件一般都会紧跟潮流,搭配着Ribbon和DockPanel风格的界面.本文将介绍WPF下两个轻量级的Ribbon和 ...
- ApacheCN 计算机视觉译文集 20211110 更新
OpenCV3 和 Qt5 计算机视觉 零.前言 一.OpenCV 和 Qt 简介 二.创建我们的第一个 Qt 和 OpenCV 项目 三.创建一个全面的 Qt + OpenCV 项目 四.Mat和Q ...
- Charles抓取手机包设置
- Nginx http重定向https
SSL证书申请的腾讯的,配置好证书后,直接监听80端口转发443就ok了 转发语句:rewrite ^/(.*) https://$server_name:443$request_uri? perma ...
- docker 网络概述及网络模式详解
docker 网络概述及网络模式详解 1.网络概述 2.网络模式详解 1.网络概述: Docker 网络实现原理 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0) ...
- 2022寒假集训day5
day5 五道栈的题加上字符串. 单调队列. T1 表达式括号匹配 洛谷P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@&q ...
- 教你写Spring组件
前言 原文地址:https://www.cnblogs.com/qnlcy/p/15905682.html 一.宗旨 在如日中天的 Spring 架构体系下,不管是什么样的组件,不管它采用的接入方式如 ...
- python数据类型内置方法
内容概要 列表内置方法 字典内置方法 字符串转换成字典的方法 eval() 元组内置方法 元组相关笔试题 集合内置方法 列表内置方法 l1 = [2, 4, 5, 7, 3, 9, 0, 6] # 升 ...