首页/开发/Git 与协作速查/PR/MR 标签与分流
协作与代码评审75 条

PR/MR 标签与分流

用标签表达类型、优先级与状态(kind/bug、priority/P1、status/review-needed),支持按标签筛选与自动化:GitHub 可用 labeler 配置按路径自动打标。

Git 与协作速查开发更新于 2026-10-13

PR/MR 标签是什么

标签是 PR/MR 的轻量分类系统,用来表达类型、优先级、状态与归属域(kind/bug、priority/P1、status/review-needed、area/frontend),支持按标签筛选与自动化分流:GitHub 可用 labeler 按改动路径自动打标,GitLab 有范围标签(scope 内互斥)。体系宁少勿滥,取值过多没人维护;标签只承担「筛选与路由」,不必承载全部信息。

基本信息

常见维度类型(feature/bug/docs)、优先级、状态、归属域
GitHub 自动化.github/labeler.yml 按改动路径自动加标签
GitLab 特性范围标签(scope::value)同组互斥,避免状态并存
查询gh pr list --label needs-review;平台页面同样支持组合筛选
维护定期清理僵尸标签,每维度保持少量取值
判定标准每个标签要能回答「谁会用它做什么」

典型使用场景

  • 分流评审:按 area 标签找对应模块的评审人,缩短等待。
  • 发布追踪:priority 与 kind 组合筛出进版范围,导出清单给测试。
  • 状态管理:needs-info/blocked 让人一眼看到卡点。
  • 自动打标:按改动路径加领域标签,减少手工维护。
  • 度量分析:按标签统计 PR 分布与处理时长。
  • 新人自助:用 status 标签找可以认领的评审任务,降低上手门槛。
  • 自动化清理:定期归档并删除长期未用标签。

操作示例

操作示例
gh pr list --label needs-review                       # 筛出待评审
gh pr edit 128 --add-label kind/bugfix --add-label priority/P1
gh pr view 128 --json labels -q '.labels[].name'     # 复核标签
# 标签约定示例(文本):kind/feature  kind/bugfix  kind/docs
gh pr list --state merged --label kind/bugfix --limit 20   # 统计已合并缺陷修复

维度设计

维度取值示例说明
kindfeature/bugfix/docs变更性质,决定发布说明分组方式
priorityP0/P1/P2决定排队顺序与催办对象
statusreview-needed/blocked流程状态,标明当前卡点
areafrontend/backend归属域,路由到对应评审团队
标签体系宁少勿滥:超过两屏的标签列表会让人放弃维护,建议每个维度不超过 5 个取值;含义写进贡献指南,并给每个维度指定维护人,季度审视一次取值集合。

易错点

  • 标签与平台状态字段双重维护会不一致;选定一种作为权威来源,另一种只做镜像展示,避免两处都能改。
  • 自动打标规则写错会覆盖人工结论;启用前先在测试 PR 上验证规则命中范围。
  • 取值缺乏文档,新人只能靠猜;把标签含义写进模板或贡献指南,新人第一次提 PR 就能对上。
  • 僵尸标签越积越多,筛选失去意义;定期清理未使用项,并把清理规则写进治理文档。

数据来源与参考

  • GitHub Docs:Managing labels
  • GitLab Docs:Labels
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌