gitlink-cli/examples/workflows/pr-quality-gatekeeper/owner-rules.example.yaml

63 lines
2.8 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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"]