Генератор CODEOWNERS
Преобразуйте правила ответственности в чистый, выровненный файл GitHub CODEOWNERS. Выявляет шаблоны без владельца, устаревшие дубликаты правил, неподдерживаемое отрицание ! и неверные токены владельцев — а также определяет, какое правило действует для конкретного пути согласно порядку last-match-wins GitHub.
Ввод
Одно правило в строке: <шаблон> <владелец1> [владелец2 ...]. Владельцы — это @username, @org/team или email — оставьте пусто, чтобы отметить путь без владельца. Строки, начинающиеся с #, — это комментарии. Более поздние правила переопределяют более ранние для одного пути.
Узнайте, какое правило действует для этого пути согласно порядку last-match-wins 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"
}'Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.
Спросите у ИИ-агента
Use the IOTools `codeowners-generator` tool (CODEOWNERS Generator) on this input:
YOUR_INPUT_HEREВставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.
Виджет для встраивания
<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 или email.
Что такое файл CODEOWNERS?
Файл CODEOWNERS указывает GitHub (или GitLab/Bitbucket, использующим тот же формат), каких людей или команды автоматически запрашивать на рецензию, когда pull request касается определённых путей. Он находится в .github/CODEOWNERS, CODEOWNERS или docs/CODEOWNERS в репозитории и может также управлять правилами защиты ветви для обязательных рецензентов.
Как использовать этот генератор
- Вставьте ваши правила в поле Правила ответственности, по одному в строке: шаблон пути, за которым следует один или несколько владельцев (
*.js @web-team,/docs/ @doc-team @jane-doe). Строки, начинающиеся с#, сохраняются как комментарии. - Генератор возвращает файл с выровненными владельцами в читаемый столбец и перечисляет все найденные проблемы в таблице Предупреждения.
- Опционально введите путь в Проверить путь файла — инструмент определяет, какое правило действует для этого пути согласно реальному порядку last-match-wins 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 Pattern.