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

Владельцы кода


Функционал доступен в Enterprise версии, а также на gitflic.ru

Функция Владельцы кода (Code Owners) дает возможность указать пользователей (владельцев кода), отвечающих за конкретные части кодовой базы или определенные файлы проекта. Использование данного функционала позволяет автоматически запрашивать одобрения на слияние, если в изменениях были затронуты файлы или директории, к которым назначены владельцы кода.

Для использования этой функции создайте файл CODEOWNERS в корне репозитория для указания правил владения файлами и разделами проекта. В каждом репозитории может быть только один файл CODEOWNERS. Для включения функции требуется выбрать соответствующий пункт на странице защиты веток. Данная функция работает независимо от наличия правил одобрения запросов на слияние, но учитываются все требования, указанные в настройках запросов на слияние

Включение владельцев кода

Конфигурирование файла CODEOWNERS

Файл CODEOWNERS использует установленный синтаксис для определения правил владения. Каждая строка в файле представляет собой правило и указывает шаблон пути или файла для одного или нескольких владельцев.

Ключевые элементы:

  • Шаблоны путей к файлам: определенные файлы или пути
  • Владельцы кода: используйте @username для указания пользователей
  • Комментарии: строки, начинающиеся с # игнорируются
  • Разделы: необязательные группы правил, определяемые с помощью [Section name]

Пример комбинаций правил

# Владельцы кода для filename файла
filename @alias1 @alias2

# Владельцы кода для всех файлов в репозитории
** @alias1 @alias2

# Владельцы кода для всех .java файлов в корне репозитория
**.java @alias1 @alias2

# Владельцы кода для директории directoryName, которая находится в корне репозитория
directoryName/** @alias1 @alias2

# Владельцы кода для директории main, которая может находиться в любом месте репозитория
**/main/** @alias1 @alias2

# Владельцы кода в секции Main section, в котором директория main находится в корне репозитория
[Main section]
main/** @alias1 @alias2

Примеры сравнения шаблона и пути до test.py

В столбце Результат указано срабатывание правила шаблона пути для файла, при использовании CODEOWNERS

Шаблон пути Пример пути до файла Результат
**/pic/** pic/target/com/test.py true
/pic/** pic/target/com/test.py true
**/com/** pic/target/com/test.py true
com/** pic/target/com/test.py false
** /**.py pic/target/com/test.py true
**.py pic/target/com/test.py false
** /pic/** pic/target/com/test.py true
pic/* pic/test.py true
pic/* pic/target/test.py false
** pic/target/com/test.py true

Пример файла CODEOWNERS

# Владельцы кода для всех java файлов в репозитории в секции [Java owners]
[Java owners]
**/**.java @alias1 @alias2

# Владельцы кода для всех .md файлов в корне репозитория в секции [DOCUMENTATION]
[DOCUMENTATION]
**.md @alias1