Добавляете ли вы вручную рецензентов кода в каждый мерж-реквест? Читайте дальше, чтобы узнать, как вы можете автоматизировать этот процесс!

Вариант 1. Встройте быстрое действие Gitlab в шаблоны мерж-реквестов.

Как настроить

  1. Создайте папку .gitlab/merge_request_templates в корневом каталоге проекта, если она не существует.
  2. В .gitlab/merge_request_templates создайте новый файл Markdown(.md)
  3. Вставьте быстрое действие /assign_reviewer и имена пользователей Gitlab рецензентов кода:
    /assign_reviewer @reviewer1 @reviewer2 @reviewer3 (and so on…)
  4. Зафиксируйте изменения, нажмите на источник и слейте!

Как использовать

  1. Откройте новый мерж-реквест или нажмите «Изменить» на существующем.
  2. Выберите только что созданный шаблон в разделе Описание.
  3. Обновите описание, выдайте номер тикета и т. д.
  4. Сохранять

Вот и все!

Вариант 2. Используйте Gitlab API и CI/CD

Как настроить

1. Создайте новую группу Gitlab или подгруппу существующей группы и добавьте в группу рецензентов кода. Вы можете пропустить этот шаг, если у вас уже есть группа или вы хотите жестко закодировать идентификаторы рецензентов в задании конвейера CI/CD.

2. Создайте файл .gitlab-ci.yml в корневом каталоге проекта, если он не существует.

3. Настройте новое задание для запуска в конвейерах мерж-реквестов с помощью rules. Добавьте «настроить запрос на слияние» stage, если применимо.

Необязательно: используйте rules:changes, чтобы иметь более детальный контроль над тем, какие изменения запускают задание. Например, если в вашем репозитории есть каталоги android и ios, вы можете создать два отдельных задания, которые назначают рецензентов кода для Android и iOS соответственно, в зависимости от того, какие изменения включены в мерж-реквест

4. В before_script дайте указание заданию установить jq, процессор JSON, на бегун перед его запуском. В зависимости от среды вашего бегуна вам, возможно, придется использовать менеджер пакетов, отличный от того, который используется ниже.

5. Напишите скрипт, который назначает рецензентов кода на ваш мерж-реквест через API Gitlab.

Шаг 1) Получите список рецензентов кода через Gitlab API. Если вы хотите жестко закодировать список рецензентов, пропустите этот шаг

Совет № 1.Убедитесь, что ваш токен имеет доступ к API для чтения вашей группы. CI_JOB_TOKEN, токен по умолчанию, создаваемый для каждого задания, не имеет доступа для чтения через API

Совет № 2.Если вы создали подгруппу существующей группы, убедитесь, что вы строго изолируете прямых участников от унаследованных и используете соответствующий API

Шаг 2) Извлеките идентификаторы Gitlab рецензентов,не имена пользователей, из ответа JSON и поместите их в массив. Если вы хотите жестко закодировать список рецензентов, вместо этого жестко закодируйте массив Gitlab ID рецензентов

Шаг 3) Используйте Gitlab API, чтобы добавить рецензентов в ваш мерж-реквест

6. Зафиксируйте изменения, отправьте в источник и слейте!

Как использовать

Просто создайте новый мерж-реквест!

Пример .gitlab-ci.yml

И вот оно! Два варианта автоматического назначения рецензентов кода вашим мерж-реквестам.

Если вы делали что-то подобное или знаете какие-либо альтернативы, дайте мне знать в разделе комментариев!

Спасибо за прочтение.

Если вы считаете этот контент ценным,

  1. 👏
  2. Поделитесь с коллегами
  3. Приходите заправить меня кофе!