# yml 样例

#-----------------------------
# 完整配置规范可参考:[配置规则](https://git.tencent.com/code/tgit-help-markdown/blob/master/docs/menu/solutions/code.yml/yml_config.md)
# 关键检查规则可参考:[检查规则](https://git.tencent.com/code/tgit-help-markdown/blob/master/docs/menu/solutions/code.yml/rule_check.md)
#-----------------------------
# 可选项,代码评审单维度的代码评审配置
# “reviewers”,“necessary_reviewers”只对非保护分支生效,如 mr 的目标分支是保护分支,此配置不生效。
# 未填写时读取对应仓库在工蜂平台对应配置
code_review:
  # 定义工蜂 cr 的评论标签,以下是给出的推荐标签分类
  restrict_labels: ["CR-编程规范", "CR-业务逻辑","CR-边界逻辑","CR-代码架构","CR-性能影响","CR-安全性","CR-可测试性","CR-可读性"]
  # 评审人
  reviewers: [""]
  # 必要评审人
  necessary_reviewers: [""]
  # 剔除不需要文件评审的分支,取值是正则表达式列表
  exclude_file_branches: ["feature-.*","developer"]
# 文件维度的 cr 配置
# 文件或目录可使用绝对或相对路径,绝对路径按代码库根目录计算,以/开头。相对路径按.code.yml 所在目录来判断,无须以/开头。
# path 节点为正则表达式,以.*表示通配,例如 .*/classes/.*,长度不要超过 4096。
# 当采用相对路径表达时,path 的正则表达式等效于“当前 yml 文件所在目录+path 正则表达式”。
# path 节点顺序将作为路径规则匹配顺序,优先级由低到高。即当按顺序 path1、path2 同时命中文件路径时,优先匹配 path2 的规则。
file :
  - path: ".*"
    # 必填项,文件负责人
    owners :  [""]
    # 必填项,文件负责人通过规则可选值 -1,0,大于等于 1 的整数;
    # -1,表示需所有 owner 审批;
    # 0,表示该文件无需任意一个 owner 审批;
    # 用大于等于 1 的整数,表示需要相应整数个的 owner 审批该路径,比如 2,标识需要任意两个 owners 审批
    owner_rule: 1

# .code.yml 文件存储要求

  • .code.yml 文件只对文件所在仓库生效,不支持跨库引用。
  • .code.yml 文件可放置在 default 分支下的任意目录,但如果多个目录存在.code.yml 文件,仅最新提交的.code.yml 配置会生效。
  • 切换默认分支时,会使用新默认分支的 .code.yml 配置。

# code_review 机制使用说明

  • 可通过.code.yml 文件配置代码评审单维度的“评审人”,“必要评审人”,“标签“
  • “评审人”,“必要评审人”只对非保护分支生效,如 mr 的目标分支是保护分支,此配置不生效。
  • .code.yml 文件提交时执行增量更新,项目内已有配置不会被覆盖,生效情况可查看“项目设置/标签/标签”及“项目设置/高级配置/代码评审”

# 举例

code_review:
  restrict_labels: ["newlabel"]
  reviewers: ["git_helper_03"]
  necessary_reviewers: ["git_helper_05"]

更新.code.yml 至仓库中,yml 定义的配置会更新至项目设置中

项目设置/标签/标签

项目设置/高级配置/代码评审

从工蜂平台发起 CR,系统会自动按照配置进行填充

image-20210812163204357

image-20210812163204357

# file 机制使用说明

  • 文件维度的 cr 配置:用于针对项目目录或文件指定特定的 review 人员,设置后会在项目默认的基础上补充对应文件的审核人以及相应审核规则;
  • path :
    • 路径起始位置 :
      1. 目录基于绝对路径 / 开始,配置精确的文件路径,例如 : /src/main/java/com/tencent/code/scan/ScanApplication.java
      2. 如果.code.yml 不在根目录,可以配置.code.yml 所在目录相对路径的文件路径配置,例如 ./com/tencent/code/scan/ScanApplication.java
    • 路径匹配 :
      1. 文件路径,可以是精确的文件路径,例如 : /src/main/java/com/tencent/code/scan/ScanApplication.java
      2. 文件路径,也可以是正则表达式,例如 /src/main/java/com/tencent/code/scan/.*_test.go
  • owners : 可以定义目录或文件的 owner,也可以用于体现代码 owner 覆盖率

# 举例

file :
  - path: ".*"
    owners :  ["git_helper_03"]
    owner_rule: 1
  - path: "README.md"
    owners :  ["git_helper_05"]
    owner_rule: 1

当 cr 文件命中 path 规则,cr 评审中需单独对命中文件进行评审

image-20210812163204357

lastUpdate: 3/13/2025, 11:40:03 AM