一种通用的 Code Review 机器人程序
背景
Code Review 是软件研发协作中的重要一环,大家在代码提交后都需要等待 Reviewer 的 Review;同时当Reviewer 提交了“修改建议”后,PR/MR 的提交者还需要根据“修改建议”相应更新自己的代码。在这个过程中可能代码提交者等了半天也没有人来 Review,或者 Reviewer 提交了“修改建议”后等了半天也没有看到提交者修改。所以各方及时收到“动作通知”,高效完成自己的“Review/Fix”工作是非常重要的。
需求
开发一个 Code Review 机器人,通过 helm 部署,可以通过 API/Webhook 的方式获取 GitHub/GitLab 上的Pull-Request/Merge-Request 动态,然后分析当前 Code Review 是被谁阻塞了,进而将消息发送到飞书群中,艾特相应人员“及时处理”。
注意点
- 多项目的支持:cr-bot 应该能配置多个项目;
- 多飞书群支持:不同的项目开发人员可能在不同群组中;
- 不考虑一个项目的开发人员分布在不同群里;
- 支持对接 GitLab 和 GitHub 两种代码托管平台;
- 默认支持将消息通知到飞书群,但是考虑好程序拓展性,方便以后对接“钉钉”等其他通讯工具;
- 通知不是一次性的,如果“责任人”一直不响应,则可以持续通知,比如20分钟、1小时、5小时、1天等时间节点可以重复通知,且通知语气可以逐步强烈,甚至抄送给群管理员;
- GitHub/GitLab 上的账号和飞书中的账号对应关系可以通过配置文件方式传入;token 等配置可以通过环境变量方式传入。