CODEOWNERS 生成器
将所有权规则转换为干净、整齐对齐的 GitHub CODEOWNERS 文件。检测无所有者的模式、已失效的重复规则、不支持的 ! 否定,以及无效的所有者令牌——并按照 GitHub 的最后匹配优先顺序确定哪个规则实际适用于特定路径。
输入
每行一条规则:<模式> <所有者1> [所有者2 ...]。所有者是 @username、@org/team 或电子邮件——留空以标记路径无所有者。以 # 开头的行是注释。后面的规则覆盖相同路径的前面规则。
查看哪个规则按照 GitHub 的最后匹配优先顺序实际适用于此路径。
输出
| 行 | 模式 | 问题 |
|---|---|---|
| No data yet | ||
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/codeowners-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rules": "# Default owners for everything\n* …",
"testPath": "docs/setup.md"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `codeowners-generator` tool (CODEOWNERS Generator) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/codeowners-generator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="CODEOWNERS 生成器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|
也可通过
使用指南
粘贴您的所有权规则,即可获得干净、整齐对齐的 GitHub CODEOWNERS 文件——加上一个警告列表,可捕捉通常被忽略的错误:无所有者的模式、已失效的重复规则、! 否定(.gitignore 支持但 CODEOWNERS 不支持),以及不是有效的 @username、@org/team 或电子邮件的所有者令牌。
CODEOWNERS 文件是什么?
CODEOWNERS 文件告诉 GitHub(或 GitLab/Bitbucket,使用相同格式)当拉取请求触及特定路径时应自动要求哪些人或团队进行审核。它位于仓库的 .github/CODEOWNERS、CODEOWNERS 或 docs/CODEOWNERS,也可以驱动所需审核人员的分支保护规则。
如何使用此生成器
- 在所有权规则框中粘贴您的规则,每行一条:路径模式后跟一个或多个所有者(
*.js @web-team、/docs/ @doc-team @jane-doe)。以#开头的行保留为注释。 - 生成器返回文件,所有者排列成可读的列,警告表中列出任何问题。
- 可选在测试文件路径中输入路径——该工具按照 GitHub 的真实最后匹配优先顺序确定哪个规则适用于该路径,并显示其所有者。
- 复制结果或下载为
CODEOWNERS。
为什么顺序很重要
GitHub 不会合并重叠的 CODEOWNERS 规则——它只应用文件中最后匹配的模式,仅此而已。文件顶部附近的宽泛规则(* @global-owner)通常被下方更具体的规则(/docs/ @doc-team)覆盖,而在文件后面重复的相同规则使之前的每个副本成为死代码。两者都很容易在文件增长到超过几行后被意外引入,都不会从 GitHub 本身产生错误——生成器的警告和"测试文件路径"查找正是为了捕捉 GitHub 默许允许的内容。
模式语法
模式遵循与 .gitignore 相同的规则,有一个重要例外:
- 没有
/的模式(如*.js)在仓库中的任何深度匹配。 - 以
/开头或包含/的模式(如/docs/或apps/web/)相对于仓库根目录锚定。 - 末尾
/(如/build/logs/)匹配该目录及其内的所有内容。 *在一个路径段内匹配;**跨越段。- 与
.gitignore不同,CODEOWNERS 不支持!否定模式——生成器标记任何以!开头的模式。
谁可以是所有者?
GitHub 用户名(@octocat)、团队(@my-org/reviewers)或链接到 GitHub 帐户的电子邮件地址。没有所有者的模式也是有效的语法——GitHub 将其读取为"这里不需要审核人员",用于从上面的更宽泛规则中创建异常很有用,但容易意外留下,因此生成器无论如何都将其标记为警告。
这是私密的吗?
是的——一切都在您的浏览器中运行。您的规则和测试的任何文件路径都不会发送到服务器。
对于将生成的构建输出和依赖项排除在 Git 之外的文件,请参阅 Gitignore 生成器。要在将单个 glob 模式放入 CODEOWNERS 之前检查它是否与您期望的路径匹配,请使用 Shell Glob 模式测试工具。