forked from Gitlink/gitlink-cli
63 lines
2.8 KiB
YAML
63 lines
2.8 KiB
YAML
# owner-rules.yaml — 文件路径 → reviewer 路由表(gitlink-gatekeeper 工作流步骤 1)
|
||
#
|
||
# 作用:PR 看门人闭环的第一步「路由」。脚本拉取 PR 变更文件后,按下面的
|
||
# glob 规则把每个文件映射到建议 reviewer,写进评分卡的「Suggested
|
||
# reviewers」分区(REQUEST_CHANGES 时也写进 tracking issue)。
|
||
#
|
||
# 语义(见 scripts/gatekeeper_workflow.py route_reviewers):
|
||
# - rules 按顺序匹配,**首个命中的规则生效**(顺序即优先级,把更具体的放前面)。
|
||
# - glob 用 Python fnmatch 语法(* 不跨目录段时也会匹配 /,与 fnmatch 行为一致)。
|
||
# - 一个文件命中后不再继续匹配后续规则;多个 reviewer 写在同一规则的 reviewers 列表里。
|
||
# - 未命中任何规则的文件归到 default_reviewers(兜底)。
|
||
#
|
||
# 排序示例(首个命中即生效、顺序即优先级,请按需排序):
|
||
# 下面把目录 glob `skills/**` 放在语言 glob `**/*.go` 之前,于是 `skills/foo.go`
|
||
# 会先命中 `skills/**` → 路由给 skill-owner,而不会落到 go-reviewer。若你希望
|
||
# skills 下的 Go 文件仍由 go-reviewer 审,就把语言规则提到目录规则之前
|
||
# (或在目录规则里收窄 glob,如 `skills/**/*.md`)。
|
||
#
|
||
# 注意:本表只产出「建议」,不调用任何写操作;真正分配 reviewer 由维护者在
|
||
# PR 页面决定。gatekeeper 不替人点提交(SSOT 第 8 节安全规则)。
|
||
#
|
||
# reviewers 填 GitLink 用户名(login)。下方为占位示例,真实使用时替换为本仓库的维护者。
|
||
|
||
rules:
|
||
# —— 文档:只改文档走文档维护者,避免占用代码 reviewer ——
|
||
- glob: "docs/**"
|
||
reviewers: ["doc-maintainer"]
|
||
- glob: "**/*.md"
|
||
reviewers: ["doc-maintainer"]
|
||
|
||
# —— 工作流 / 脚本本体 ——
|
||
- glob: "workflow/**"
|
||
reviewers: ["workflow-owner"]
|
||
- glob: "skills/**"
|
||
reviewers: ["skill-owner"]
|
||
|
||
# —— 按语言路由到对应方向的 reviewer ——
|
||
- glob: "**/*_test.go"
|
||
reviewers: ["go-reviewer", "qa-reviewer"]
|
||
- glob: "**/*.go"
|
||
reviewers: ["go-reviewer"]
|
||
- glob: "test_*.py"
|
||
reviewers: ["py-reviewer", "qa-reviewer"]
|
||
- glob: "**/*.py"
|
||
reviewers: ["py-reviewer"]
|
||
- glob: "**/*.ts"
|
||
reviewers: ["fe-reviewer"]
|
||
- glob: "**/*.js"
|
||
reviewers: ["fe-reviewer"]
|
||
|
||
# —— 高敏感区:CI / 依赖 / 安全配置,强制资深 reviewer ——
|
||
- glob: ".gitea/**"
|
||
reviewers: ["ci-owner", "security-reviewer"]
|
||
- glob: "**/Dockerfile"
|
||
reviewers: ["ci-owner"]
|
||
- glob: "go.mod"
|
||
reviewers: ["security-reviewer"]
|
||
- glob: "go.sum"
|
||
reviewers: ["security-reviewer"]
|
||
|
||
# 未命中上面任何规则的文件,兜底分配给这些人
|
||
default_reviewers: ["maintainer"]
|