上一篇文章中我们提到了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仓库和钉钉的联动的更多相关文章

  1. Sourcetree 集成 Azure DevOps Server(Git)

    概述- SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mercurial和Subversion版本控制系统工具.支持创建.克隆.提交 ...

  2. Azure DevOps Server:Git权限设置

    Azure DevOps Server 权限概述 在Azure DevOps Server (之前名称为TFS)中,权限是一个比较复杂的概念.从权限层级上来说,包括服务器级别.团队项目集合级别.团队项 ...

  3. 解决macOS git clone Azure DevOps提示身份认证失败问题

    macOS的终端输入git clone对应Azure DevOps的Git地址,紧接着输入正确的用户名和密码仍然会提示认证失败.解决的方法是安装微软的Git-Credential-Manager.由于 ...

  4. Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源

    一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...

  5. Azure DevOps (十二) 通过Azure Devops部署一个SpringBoot应用

    文章配套视频专栏: https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536 视频正在努力更新. 上一篇文章中,我们通过 ...

  6. git——学习笔记(二)远程仓库

    GIT杀手锏之一——远程仓库 拥有远程仓库的两个办法 1:搭一个Git服务器  2:在GitHub上免费托管的Git仓库 本地仓库   远程仓库 一.在GitHub上免费托管的Git仓库 电脑: 1. ...

  7. Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)

    之前写过一篇博客"探索TFS Git 库文件换行(CRLF)的处理方式",主要是针对TFVC代码库的. 下面这篇文章说明如何在TFS的Git库中处理代码换行的问题. 概述 在Azu ...

  8. Git 仓库结构 (二)***

    一.GIT工作流程 了解git,首先要弄清楚对象在被git管理过程中所处的4个阶段,分别是: 工作目录 index(又称为暂存区) 本地仓库 远程仓库. 从时间先后来讲,工作目录的内容是你当前看到的, ...

  9. git学习教程二之远程仓库学习

    首先你需要注册一个github用户名,我的github账户是:1654218052@qq.com 由于本地的git仓库和github的仓库是通过SSH加密的,所以我们还需要设置一点东西哦 第1步:创建 ...

随机推荐

  1. th 表达式的简单使用。

    一.使用场景,页面中,循环遍历,获得控制器穿过来的值. 1.1 控制器 /** * 获得所有的图书信息 * @return */ @RequestMapping("/turnIndexPag ...

  2. plsql 将游标读取到table中

    -- 将游标中的数据 读取到table中 根据部门编号获得emp所有信息. declare cursor c(no emp.deptno%type)is select * from emp where ...

  3. webpack热更新 同时导出文件到本地

    webpack 配置热更新后,文件配置导出到本地 安装 npm i webpack-dev-server-output --save-dev 引入 const WebpackDevServerOutp ...

  4. php7.3编译安装 支持微擎2.0

    再次整理   //一下配置在命令粘贴时注意句尾加 \ , 在 \ 后不能有空格,不然会自动执行,相当于回车./configure --prefix=/usr/local/php \ --with-co ...

  5. ImageMagick转换图片格式

    /usr/bin/convert data/manager/tongji/Html/WebData/images/code0/xingfumima0_1000_0.jpg -colorspace cm ...

  6. Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看

    一.前言 搜索引擎还是在电商项目.百度.还有技术博客中广泛应用,使用最多的还是ElasticSearch,Solr在大数据量下检索性能不如ElasticSearch.今天和大家一起搭建一下,小编是看完 ...

  7. 小程序"errcode":41002错误问题如何解决?

    我的问题是:小程序在本地测试的时候是没有问题的,但是当我扫开发者中的项目中的二维码手机浏览测试的时候发现是没有数据的,然后调试工具中出现: {"errcode":41002,&qu ...

  8. Haar小波分析

    一 尺度函数与小波函数 基本尺度函数定义为:,对其向右平移任意 k 个单位,构成函数族 , 该函数族在 空间中正交,证明如下: 1 : 2 当 m 不等于 k 时, 函数族  构成一组正交基,并形成  ...

  9. opencv笔记---contours

    一 Contour Finding Contours使用 STL-style vector<> 表示,如 vector<cv::Point>, vector<cv::Po ...

  10. Python基础—文件操作(Day8)

    一.文件操作参数 1.文件路径 1)绝对路径:从根目录开始一级一级查找直到找到文件. f=open('e:\文件操作笔记.txt',encoding='utf-8',mode='r') content ...