Добавляете ли вы вручную рецензентов кода в каждый мерж-реквест? Читайте дальше, чтобы узнать, как вы можете автоматизировать этот процесс!
Вариант 1. Встройте быстрое действие Gitlab в шаблоны мерж-реквестов.
Как настроить
- Создайте папку
.gitlab/merge_request_templates
в корневом каталоге проекта, если она не существует. - В
.gitlab/merge_request_templates
создайте новый файл Markdown(.md
) - Вставьте быстрое действие
/assign_reviewer
и имена пользователей Gitlab рецензентов кода:/assign_reviewer @reviewer1 @reviewer2 @reviewer3 (and so on…)
- Зафиксируйте изменения, нажмите на источник и слейте!
Как использовать
- Откройте новый мерж-реквест или нажмите «Изменить» на существующем.
- Выберите только что созданный шаблон в разделе Описание.
- Обновите описание, выдайте номер тикета и т. д.
- Сохранять
Вот и все!
Вариант 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
И вот оно! Два варианта автоматического назначения рецензентов кода вашим мерж-реквестам.
Если вы делали что-то подобное или знаете какие-либо альтернативы, дайте мне знать в разделе комментариев!
Спасибо за прочтение.
Если вы считаете этот контент ценным,
- 👏
- Поделитесь с коллегами
- Приходите заправить меня кофе!