Перейти к содержанию

Валидатор CODEOWNERS

Проверяйте CODEOWNERS файл на ошибки в паттернах, отсутствующие владельцы и мёртвые правила.

Входные данные
Пути для проверки (по одному на строку)
Выходные данные

Валидатор CODEOWNERS

Вставьте содержимое файла CODEOWNERS, и этот инструмент проверит его так, как это делал бы ревьюер — строка за строкой. Он отмечает паттерны, которые не могут быть разобраны, неправильно написанные имена пользователей и команды, некорректные адреса электронной почты и правила, которые тихо дублируют или затемняют друг друга — включая правило, спрятанное выше более поздним catch-all паттерном, который незаметно завладел каждым путём, которым оно раньше владело.

Выберите платформу, которую использует ваш репозиторий — GitHub, GitLab или Bitbucket — потому что опциональные заголовки разделов GitLab ("[Frontend]") не распознаются на других двух, и файл, написанный для одной платформы, может молчаливо ничего не делать на другой. Включите «Отчёт о файлах без владельца», чтобы выделить любой проверенный путь, который не покрывается никаким правилом, «Сортировать результаты по порядку правил» для группировки результатов второго поля по строке, которая их определила, вместо порядка, в котором вы их вставили, и «Показать количество правил на владельца», чтобы увидеть, кто владеет большей частью файла с первого взгляда.

Вставьте список путей файлов во второе поле для проверки их против правил: CODEOWNERS использует ту же логику «последнее совпадающее правило побеждает» как .gitignore, поэтому инструмент сообщает ровно какая строка и какой владелец применяются к каждому пути — не только валиден ли паттерн. Оба Windows и Unix окончания строк обрабатываются одинаково, и отчёт остаётся действительным, закомментированным CODEOWNERS файлом, который вы можете прочитать прямо из вывода.

Всё работает локально в вашем браузере. Ваш файл и пути, которые вы проверяете, никогда не загружаются куда-либо, что важно для файла, который может содержать приватную структуру команд и репозиториев. Скопируйте аннотированный результат, загрузите его как .txt файл или отправьте его обратно на вход для исправления проблемы и повторной проверки.

FAQ

Что считается правилом, которое "не может никогда вступить в силу"?
Два случая: точный дубликат более раннего паттерна (позже выигрывает всегда строка, поэтому более ранняя — мёртвый груз), и широкий catch-all паттерн типа "*" размещённый после более специфичного правила, который молчаливо переопределяет всё выше.
Как инструмент определяет, какой владелец применяется к пути?
Так же, как это делают GitHub, GitLab и Bitbucket: он идёт по правилам в порядке файла и последний паттерн, который совпадает с заданным путём, побеждает, даже если более раннее, более специфичное на вид правило также совпадало.
Почему выбор платформы имеет значение, если синтаксис выглядит одинаково?
Большая часть синтаксиса CODEOWNERS общая, но специфичные для GitLab функции типа заголовков разделов — это просто инертный текст на GitHub и Bitbucket — инструмент их отмечает, чтобы вы заметили перед тем, как требование ревью молчаливо не применится.
Проверяет ли он, что имена пользователей или команды действительно существуют?
Нет — он только проверяет, что они правильно сформированы (валидные символы, одна "/" для команды, реалистичный адрес электронной почты). Подтверждение того, что имя пользователя или команда всё ещё существуют в вашей организации, требует проверки непосредственно в GitHub, GitLab или Bitbucket.
Мой файл CODEOWNERS загружен куда-то?
Нет. Валидация работает полностью в вашем браузере — файл и любые пути, которые вы проверяете, никогда не покидают ваше устройство.