Комментарии 10
У вас получается не self-hosted gitlab? Вроде danger-js не работал с self hosted gitlab, и мне пришлось создавать гитлаб аккаунт, и по rest api писать комментарии через этот аккаунт, для схожей задачи
У нас self-hosted. У danger-js есть дока по подключения бота для self-hosted gitlab. https://danger.systems/js/usage/gitlab.html
Мы интегрировали DangerJS с self-hosted gitlab, всё работает. Если будут проблемы, могу постараться помочь разобраться.
MR будет висеть 2+ недели?
Как раз на днях решал эту проблему. Добавил в общие настройки проекта, список ревьюеров, которых нужно пропускать. Файлик хранить не удобно не хочется, придется создавать новую ветку и подливать ее в мастер, а так перед отпуском добавил ревьюера в исключение и все ок :)
REVIEW_ROULETTE_SKIP_APPROVERS: 'first, second'
Если у вас есть возможность интегрироваться со своей внутренней системой, которая вам может предоставить данные об отпуске сотрудника, можно использовать ее для фильтрации ревьюеров :)
Ответил выше:)
Первая проблема была в том, что при выполнении в конвейере нескольких скриптов с ботом последний выполняющийся переписывает результаты работы всех предыдущих. Поэтому я добавил в бот индентификатор, передаваемый через переменную окружения.
Не совсем понял как передача идентификатора решает проблему перетирания ревьюеров, назначенных на предыдущем запуске.
// алгоритм подбора рекомендуемых апруверов (у нас он реализован на основе файла CODEOWNERS)
Мы планируем сделать то же самое, не поделитесь алгоритмом?
Первая проблема была в том, что при выполнении в конвейере нескольких скриптов с ботом последний выполняющийся переписывает результаты работы всех предыдущих. Поэтому я добавил в бот индентификатор, передаваемый через переменную окружения.
Идентификатор гарантирует, что каждый скрипт пишет своё сообщение только в свой контейнер. При отсутствии идентификатора и наличии нескольких скриптов, все они будут писать в один контейнер.
Ниже приведу примеры, что я имел ввиду
Без индентификатора
Скрипт проверки качества кода -> контейнер с сообщением №1
Скрипт выбора ревьюера -> контейнер с сообщением №1
С идентификатором
Скрипт проверки качества кода -> контейнер с сообщением №1 (качество кода)
Скрипт выбора ревьюера -> контейнер с сообщением №2 (выбор ревьюеров)
С идентификатором и повторным запуском
Первый прогон
Скрипт проверки качества кода -> контейнер с сообщением №1 (качество кода)
Скрипт выбора ревьюера -> контейнер с сообщением №2 (выбор ревьюеров)
Повторный запуск
Скрипт проверки качества кода -> контейнер с сообщением №1 (качество кода) перетирает сообщение на предыдущем запуске
Скрипт выбора ревьюера -> контейнер с сообщением №2 (выбор ревьюеров) перетирает сообщение на предыдущем запуске
Проблему с перетиранием предыдущего сообщения можно решить путем проверки выбраны ли ревьюеры и выходить из функции.
Планируем сделать то же самое, не поделитесь алгоритмом?
Напиши мне в личку, обсудим
Автоматизируем выбор ревьюера с помощью GitLab CI и Danger JS