如何基于非文件变更的外部参数自动为Pull Request添加评审人?
能否基于文件变更外的外部参数为Pull Request添加特定评审人?
当然可以,借助代码托管平台的自动化工具(比如GitHub Actions、GitLab CI等),完全能基于各种非文件变更类的规则给PR自动添加指定评审人,以下是对应示例的具体实现思路:
按PR创建时间分配评审人:
提取PR的创建时间戳,转换成当地时间后判断所属时段。比如在GitHub Actions里,直接用github.event.pull_request.created_at获取创建时间,通过Shell脚本或Node.js代码解析时间区间,要是落在08:00-17:00就调用平台API添加评审人X,17:00-21:00则添加Y。检测文件删除时添加评审人:
对比PR的提交差异,找出被删除的文件。比如用git diff --name-only --diff-filter=D命令列出所有被删除的文件,只要输出结果不为空,就触发添加评审人X的操作。每第10个PR添加评审人:
两种方式实现:一是调用平台API获取仓库的PR总数(包含已关闭、合并的),对总数取模10,结果为0时添加评审人X;二是在仓库里维护一个简单的计数器文件,每次PR创建时递增计数,数到10就触发添加操作并重置计数器。按概率随机添加评审人:
用脚本生成0-99的随机数,要是随机数小于5(对应5%概率),就添加评审人X。比如Shell环境里用$((RANDOM % 100))生成随机数,判断后执行添加逻辑即可。
内容的提问来源于stack exchange,提问作者TSDrake
相关产品推荐
相关产品推荐

