在做日常迭代交付时提交的 PR,指定组内成员进行代码评审,当代码变更涉及到某文件或目录 A 时,大多数情况下会指派固定的人员 B 进行代码评审。我们就可以称为 B 是 组件 A 的 CodeOwner。简单来说,Codeowner 用来定义谁负责仓库中的特定文件或目录。
想要使用 CodeOwner 功能,需要在仓库中指定的位置创建一个名为CODEOWNERS文件,它们仅适用于当前分支,指定的位置为:
.gitee/目录中docs/目录中CODEOWNERS 文件案例
# Code Owners for a file
filename @username1 @username2
# Code Owners for a directory
# You can also use email addresses if you prefer.
directoryname/ @username1 XXXX@qq.com
# 正则匹配
*.rb @liwen 
# The `docs/*` pattern will match files like
# `docs/getting-started.md` but not further nested files like
# `docs/build-app/troubleshooting.md`.
docs/*  docs@example.com
# In this example, @octocat owns any file in an apps directory
# anywhere in your repository.
apps/ @octocat
当文件匹配文件中的多个CODEOWNERS规则时,将使用匹配文件的最后一个模式中的用户。例如:
README.md @user1
# This line would also match the file README.md
*.md @user2
README.md的代码所有者是@user2,每个文件路径只能匹配一个CODEOWNERS规则。
语法转义
\ 对以 # 开头的模式转义,使其被当作模式而不是注释;[ ] 定义分组范围,分组使用方法如下:[Documentation]
ee/docs/    @docs
docs/       @docs
[Database]
README.md  @database
model/db/   @database
[DOCUMENTATION]
README.md  @docs
可以将某个部分设为可选,以便该部分中的代码审核的批准是可选的。
在代码所有者部分名称之前放置一个插入字符^。例如:
^[Documentation]
*.md @ligen @liqin
[Config]
*.yml @liwen @normalcoder 
/app/models @xxx @xxx2
CodeOwner 指派规则