影刀RPA 代码审查提醒:Git提交自动触发Review流程

📅 2026/7/12 5:21:13
影刀RPA 代码审查提醒:Git提交自动触发Review流程
影刀RPA 代码审查提醒Git提交自动触发Review流程作者林焱什么情况用什么小团队做代码审查经常面临一个尴尬有人提了PR但没人看三天后才被发现有人改了核心模块但Reviewer不知道紧急修复合到master了才发现没经过Review。影刀RPA做Git审查流程自动化监控Git仓库 → 检测新PR/新提交 → 按规则分配Reviewer → 定时催促未Review的PR → 统计代码审查质量。怎么做拼多多店群自动化上架方案第一步监控仓库新PRimportrequests# GitHub APIrepoyour-org/your-repotokenghp_xxx# GitHub Personal Access Tokenheaders{Authorization:ftoken{token}}urlfhttps://api.github.com/repos/{repo}/pulls?stateopenresprequests.get(url,headersheaders)pullsresp.json()forprinpulls:print(fPR #{pr[number]}:{pr[title]}by{pr[user][login]})print(f 分支:{pr[head][ref]}→{pr[base][ref]})print(f 创建时间:{pr[created_at]})# 检查是否已分配Reviewerifnotpr.get(requested_reviewers):# 自动分配assign_reviewer(pr)对于公司内部的GitLab/GiteeAPI类似但路径不同# GitLab APIurlfhttps://gitlab.company.com/api/v4/projects/{project_id}/merge_requests?stateopenedheaders{PRIVATE-TOKEN:xxx}第二步自动分配Reviewer分配规则可以根据文件路径# 代码Owner映射根据修改的文件分配Reviewerowner_map{src/payment/:[张三],src/user/:[李四],src/admin/:[王五,赵六],db/migrations/:[DBA_Team],infra/:[DevOps],}defassign_reviewer(pr):# 获取PR修改的文件列表files_urlpr[url]/filesfilesrequests.get(files_url,headersheaders).json()reviewersset()forfinfiles:filenamef[filename]forpath_prefix,ownersinowner_map.items():iffilename.startswith(path_prefix):reviewers.update(owners)ifnotreviewers:reviewers{default-reviewer}# 默认Reviewer# 调用API分配Reviewerassign_urlf{pr[url]}/requested_reviewersrequests.post(assign_url,json{reviewers:list(reviewers)},headersheaders)影刀操作以上代码封装成Python脚本影刀通过【定时任务】每30分钟执行一次。第三步Review进度催促fromdatetimeimportdatetime,timedeltaforprinpulls:created_atdatetime.fromisoformat(pr[created_at].replace(Z,00:00))hours_pending(datetime.now()-created_at.replace(tzinfoNone)).total_seconds()/3600ifhours_pending4andnotpr.get(requested_reviewers):# 超过4小时未Review → 发消息提醒messagef{pr[user][login]}请为 PR #{pr[number]}({pr[title]}) 分配Reviewersend_slack_message(message)elifhours_pending24:# 超过24小时 → 升级提醒到团队群messagefchannel PR #{pr[number]}已等待{hours_pending:.0f}小时未Review请关注send_slack_message(message,channel#team-dev)第四步审查质量周报# 统计本周PR数据weekly_stats{总PR数:len(all_weekly_prs),已合并:len(merged_prs),仍在Review:len(open_prs),平均Review时间:f{avg_review_hours:.1f}小时,最长等待:f{max_wait_hours:.1f}小时,Review评论数:total_comments,![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a15b2e282f854e50919ab6824742908d.png#pic_center)发现Bug数:bugs_found,}# 生成周报发到团队群reportgenerate_weekly_report(weekly_stats)send_slack_message(report,channel#team-dev)有什么坑坑1Git API限流TEMU店群如何管理运营GitHub免费API每小时60次请求监控多个仓库可能不够用。用缓存策略PR列表每5分钟拉一次不要每次检查都重新请求。坑2Reviewer不在时无人接手被分配的Reviewer请假了PR卡住。加一个Reviewer可用性检查对接OA系统如果Reviewer请假自动转给Backup。坑3紧急修复豁免线上紧急Bug修复通常不需要完整Review流程。通过PR标题关键词判断含hotfix、紧急的PR跳过催促。坑4跨仓库PR遗漏大项目可能有多个仓库相互依赖。A仓库的PR可能依赖B仓库的PR先合并。单纯按时间催促会造成误判。总结代码审查自动化不是替代人工Review而是保证该审的不会被遗忘。催促和统计是RPA最容易做到的自动分配Reviewer则需要和团队的Code Review规范对齐。