在现代化开发工具链里面就包含了自动化的通讯工具,而日志写代码我是推到 Gitlab 平台上,我今天听了郭锐大佬的分享之后,感觉我现在的团队的自动化做的远远不够。我在他的课程上学到的最重要一句话就是做工具不是从零到一最难,有很多非常厉害好用的工具最后都没用上的原因是没有加入到开发链条上。所以我用最简单的工具做实践,在 Gitlab 上的代码审查每次都需要自己手动将代码审查链接发给对应的审查者,这样的效率很低,于是我就打通了通讯工具和代码平台之间的联系,开始一步步打造适合自己团队的工具

这只是一个简单的工具,下面让我告诉大家做出来的效果

让 Gitlab 的 MergeRequest 每次有变更的时候,就在 MatterMost 发送信息给审查者催他进行代码审查

我现在团队使用的通讯工具主要是 MatterMost 工具,因为这个工具首先是开源的,第二是支持很多的定制和很多的插件。推荐小伙伴了解一下 MatterMost 这个工具

效果

我在 MatterMost 创建了代码审查频道,这个频道里面将会被机器人发送很多代码审查链接

之前都是纯手工发送链接,同时需要手工催审查者审查

而用上了工具的效果如下

核心用的技术就是 Gitlab 的 WebHook 和 dotnet core 集成到 Mattermost 聊天工具 两个技术

使用方法

下面让我告诉大家如何使用我这个工具关联你自己的 GitLab 和 Mattermost 工具

首先在 github 将这个仓库的代码通过 git clone 下载,然后使用 VisualStudio 2019 打开哦

git clone git@github.com:dotnet-campus/DotNetGitLabWebHook.git

开发要求如下

  • VisualStudio 2019 打开预览版
  • dotnet core 3.0 预览版

打开 appsettings.json 文件,此时将可以看到 MatterMostCodeReviewUrl 内容,请将他替换为你自己的 MatterMost 链接,获取链接方式如下

dotnet core 集成到 Mattermost 聊天工具 这篇博客有告诉大家如何拿到链接,本文这里就简单说一下

点击主菜单,打开集成页面

点击添加钩子

输入一个标题和选择频道,我这里选择的是之前创建的代码审查频道

现在就可以看到一个链接了

我的链接是 http://127.0.0.1:8065/hooks/xjkyn7ks1pn7xeho1f5ifxqhxh 请将本文下面代码用到的这个链接替换为你自己的

appsettings.json 文件替换一下链接,文件如下

{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"MatterMostCodeReviewUrl": "http://127.0.0.1:8065/hooks/xjkyn7ks1pn7xeho1f5ifxqhxh"
}

然后在 VisualStudio 将代码运行,我在 Program.cs 设置了监听默认的端口是 5006 暂时还没做到配置里面

下一步就是在 Gitlab 的项目上添加 WebHook 了

通过 cmd 命令输入 ipconfig 就可以知道自己的设备的 ip 地址了,理论上如果是内网的 Gitlab 是可以访问到你的地址的,如果不可以就需要找 IT 小伙伴聊聊,弄个服务器玩

先在 GitLab 创建一个个人项目用于测试

点击 Integrations Settings 进行设置

在 URL 填写自己的 IP 拼接的链接

http://你的ip:5006/GitLabWebHook/MergeRequest

勾选 Merge request events 然后取消打开 SSL 和去掉 Push events 然后点击添加

此时尝试新建一个 MergeRequest 测试一下

如果上面步骤没有错,应该可以在 MatterMost 上看到链接

嗯,代码现在还在进行优化,关键是将这个工具用起来,十分欢迎大家加入开发

在 Gitlab 开启 MatterMost 机器人

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

最新文章

  1. mybatis关联映射
  2. Linux命令学习总结:pwd命令
  3. FTP提示505错误解决办法
  4. iphone APP 去广告。 【转载】
  5. PHP程序员7小时学会Kotlin系列 - 第一小时 背景
  6. 求文件的m至n行
  7. 常用ARM汇编指令
  8. SQLAlchemy连接数据库并在django admin显示
  9. 269. Alien Dictionary
  10. 实现Word的列表样式
  11. sqoop1.4.6导出oracle实例
  12. select函数的介绍和使用
  13. Python3 日期和时间
  14. RAC集群数据库连库代码示例(jdbc thin方式,非oci)
  15. java数组冒泡排序
  16. 在其他Activity中展示自定义相机拍的照片
  17. CodeFroces-- Feel Good
  18. 实现域名访问网站—nginx反向代理
  19. ELK学习笔记之ElasticSearch的索引详解
  20. CCSUOJ评测系统

热门文章

  1. codechef Heavy-light Decompositions
  2. C++ 标准库 permutation
  3. 命令行的形式运行php
  4. Win10系统使用Docker安装oracle并通过Navicat for oracle进行登录
  5. HLSL效果框架
  6. 在 VirtualBox 安装 Centos Docker-CE
  7. LInux下编译发生的libc相关错误
  8. mysql数据库之存储引擎
  9. Python关键点常识
  10. vue项目配置同一局域网可使用ip访问