Как стать автором
Обновить

Комментарии 10

У вас получается не self-hosted gitlab? Вроде danger-js не работал с self hosted gitlab, и мне пришлось создавать гитлаб аккаунт, и по rest api писать комментарии через этот аккаунт, для схожей задачи

Мы интегрировали DangerJS с self-hosted gitlab, всё работает. Если будут проблемы, могу постараться помочь разобраться.

А как решается проблема с временным отсутствием выбранного ревьювера (например, человек в отпуске)?
MR будет висеть 2+ недели?

Как раз на днях решал эту проблему. Добавил в общие настройки проекта, список ревьюеров, которых нужно пропускать. Файлик хранить не удобно не хочется, придется создавать новую ветку и подливать ее в мастер, а так перед отпуском добавил ревьюера в исключение и все ок :)

REVIEW_ROULETTE_SKIP_APPROVERS: 'first, second'

Если у вас есть возможность интегрироваться со своей внутренней системой, которая вам может предоставить данные об отпуске сотрудника, можно использовать ее для фильтрации ревьюеров :)

я видел в этом боте - он смотрит на иконку статуса в мессенджере. Если пальма или смайлик с градусником - добавляет в исключения.

Да, мы тоже такое сделали. И перенесли бота из пайплайна в мессенджер.

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

Не совсем понял как передача идентификатора решает проблему перетирания ревьюеров, назначенных на предыдущем запуске.

// алгоритм подбора рекомендуемых апруверов (у нас он реализован на основе файла CODEOWNERS)

Мы планируем сделать то же самое, не поделитесь алгоритмом?

Первая проблема была в том, что при выполнении в конвейере нескольких скриптов с ботом последний выполняющийся переписывает результаты работы всех предыдущих. Поэтому я добавил в бот индентификатор, передаваемый через переменную окружения.
Идентификатор гарантирует, что каждый скрипт пишет своё сообщение только в свой контейнер. При отсутствии идентификатора и наличии нескольких скриптов, все они будут писать в один контейнер.

Ниже приведу примеры, что я имел ввиду

Без индентификатора

Скрипт проверки качества кода ->  контейнер с сообщением №1

Скрипт выбора ревьюера -> контейнер с сообщением №1

С идентификатором

Скрипт проверки качества кода -> контейнер с сообщением №1 (качество кода)

Скрипт выбора ревьюера -> контейнер с сообщением №2 (выбор ревьюеров)

С идентификатором и повторным запуском

Первый прогон

Скрипт проверки качества кода -> контейнер с сообщением №1 (качество кода)

Скрипт выбора ревьюера -> контейнер с сообщением №2 (выбор ревьюеров)

Повторный запуск

Скрипт проверки качества кода -> контейнер с сообщением №1 (качество кода) перетирает сообщение на предыдущем запуске

Скрипт выбора ревьюера -> контейнер с сообщением №2 (выбор ревьюеров) перетирает сообщение на предыдущем запуске

Проблему с перетиранием предыдущего сообщения можно решить путем проверки выбраны ли ревьюеры и выходить из функции.

Планируем сделать то же самое, не поделитесь алгоритмом?

Напиши мне в личку, обсудим

Зарегистрируйтесь на Хабре, чтобы оставить комментарий