TFS发布计划发送到钉钉消息群
来源:互联网 发布:每天做梦知乎 编辑:程序博客网 时间:2024/06/13 02:58
由于工作中需要用到钉钉,每天都要和钉钉打交道:上下班打卡、出差请假流程、各种工作讨论组,不一而足,工作已然和钉钉绑在了一起,难怪有广告词: 微信是一个生活方式,钉钉是一个工作方式。
我们是钉钉机器人内测版的首批用户,使用自定义机器人功能做了预警消息推送,效果还不错,目前钉钉机器人已经正式发布,支持与Github、Gitlab、Jira等集成:
由于我们研发过程管理重度依赖微软TFS(Team Foundation Server),研发、测试及运维同学(DevOps)希望将发布计划通知到钉钉群,由于钉钉机器人没有提供默认支持,我们可以通过“自定义”机器人完成该功能。
一、TFS中设置
1.新建服务挂钩
2.Web挂钩
3.触发器
4.设置URL及选择“全部”资源信息
这里的URL,就是我们开发的WebAPI,点击测试,TFS会发送JSON给定义的WebAPI,格式如下:
二、WebAPI
我们主要对TFS发过来的JSON中的resource进行解析:
public class WorkItemCreatedController : ApiController { //钉钉通知群 private static string dingDingToken = ConfigurationManager.AppSettings["WorkItemCreatedDingDingToken"]; [HttpPost] public void Post() { var wiJson = Request.Content.ReadAsStringAsync().Result; var workItem = JsonConvert.DeserializeObject<WorkItem>(wiJson); 。。。。。。 }}
WorkItem定义如下:
public class WorkItem { public WorkItemResource resource { get; set; } } public class WorkItemResource { public int id { get; set; } public Dictionary<string, string> fields { get; set; } }
这里关键点是把fields定义为Dictionary,通过JsonConvert反序列化后,很方便获得想要的字段,比较有用的几个字段是:
"id": 发布计划创建成功后返回的id号,"System.WorkItemType": "发布计划","System.CreatedBy": "创建人","System.Title": "发布计划名称","System.Description":"发布说明"可自定义字段,标识实际发布时间
这里需要注意的是,TFS返回的时间,是UTC时间,比本地时间晚8个小时,我们接收后,需要做响应的ToLocalTime处理。
三、组装钉钉消息
经过步骤二,我们已经解析到需要的字段,下面组装成钉钉要求的格式即可,钉钉机器人支持@多个具体人,需要传入这些人的手机号:
private static string ConstructTextTypeMsg(string content, List<string> mobiles) { var textTypeMsg = new TextTypeMsg() { //消息类型 msgtype = "text", //消息内容 text = new TextTypeMsg.Text() { content = content }, //At人列表 at = new TextTypeMsg.At() { isAtAll = false, atMobiles = mobiles } }; return JsonConvert.SerializeObject(textTypeMsg); }
TextTypeMsg实体类定义如下:
public class TextTypeMsg { public string msgtype { get; set; } public Text text { get; set; } public At at { get; set; } public class Text { public string content { get; set; } } public class At { public List<string> atMobiles { get; set; } public bool isAtAll { get; set; } } }
四、整体流程
五、总结
经过前面三步,就将TFS中的发布计划,通过IIS中的WebAPI,调用钉钉机器人,发送到了钉钉群中,通过Coding,将微软TFS和阿里钉钉进行了联姻。
- TFS发布计划发送到钉钉消息群
- TFS发布计划发送到钉钉消息群
- TFS发布计划发送到钉钉消息群
- TFS发布计划发送到钉钉消息群
- TFS发布计划发送到钉钉消息群
- TFS发布计划发送到钉钉消息群
- TFS发布计划发送到钉钉消息群
- 发布Outlook日历到TFS
- 发布和发送消息(Posting and Sending Messages)
- ActiveMQ 发布订阅(topic)模式_发送消息和接收消息
- 消息发送
- 发送消息
- 发送消息
- 发布消息
- 微软发布官方TFS 2010 Scrum 模板
- 微软发布官方TFS 2010 Scrum 模板
- 微软发布官方TFS 2010 Scrum 模板
- QQ群如何发送匿名消息
- 将TensorFlow安装到树莓派中
- SNAT和DNAT的区别
- google帐号的注册方法
- 【Android UI设计与开发】8.顶部标题栏(一)ActionBar
- 第一个MapReduce案例集群模式&本地模式
- TFS发布计划发送到钉钉消息群
- 蚁群算法的若干记录
- struts2返回json
- 【支付宝】支付宝ISV申请方法
- CentOS FTP安装及配置
- opencv之图片序列转存为视频
- wordpress使用技巧
- 深度学习在分词上的应用
- Windows编程窗口