Использование Mergify для автоматизации объединения Pull-запросов.


ОГЛАВЛЕНИЕ

  • Введение
  • Mergify
  • Функции
  • Автоматическое слияние
  • Очередь слияния
  • Установка
  • Конфигурация
  • Пример
  • Заключение

Введение

Слияние кода в ветку может быть очень трудоемкой задачей, особенно в больших проектах с большим количеством разработчиков, или если у вас большое количество Pull Requests, которые должны быть рассмотрены, одобрены и слиты в правильном порядке. Кроме того, если до того, как ваш PR будет объединен, другие PR будут объединены с основным, то ваш PR устареет. Тогда будут проведены CI-тесты GitHub, и если они пройдут, то нам придется нажать на merge, чтобы PR был объединен. Это также можно автоматизировать с помощью Mergify. Довольно круто! Итак, в этом блоге мы узнаем, что такое Mergify и как мы можем начать работу с ним и использовать его для облегчения нашей жизни как разработчика.

Если вам больше нравится визуальное обучение, посмотрите это видео от Кунала Кушвахи:-
Видео

Mergify

Mergify — это инструмент, который помогает определять приоритеты, ставить в очередь и автоматически объединять ваши запросы на доработку. Он также может перебазировать и обновить ваши ветки, комментируя, маркируя, назначая и закрывая ваши запросы на исправление. Проще говоря, Mergify — это инструмент автоматизации запросов на GitHub с инструментом слияния. Но он может делать гораздо больше. Самое приятное, что вам не нужно изучать никакие другие технологии, они интегрированы в GitHub.

Функции

Автоматическое слияние

Вы можете настроить поведение автоматического слияния, и как только критерии/условия, такие как прохождение CI-тестов, будут выполнены, ваши PR будут слиты автоматически. Это можно сделать, описав условия запроса в YAML-файле. Вы можете подобрать любой запрос на слияние на основе любых критериев.

Очередь слияния

Как я уже объяснял во введении об устаревших PR. Вы не должны объединять устаревшие PR, а поддержание PR в актуальном состоянии может отнимать много времени. Именно здесь на помощь приходит очередь слияния. Ваши запросы на внесение изменений объединяются последовательно и тестируются в CI один за другим, что позволяет избежать регрессии кода.

  • Если несколько запросов на слияние могут быть объединены, они планируются к последовательному объединению и обновляются друг за другом. Обновление ветки запроса на вытягивание происходит только тогда, когда запрос на вытягивание готов к слиянию, например, когда все условия подтверждены.
  • Это означает, что если первый запрос был объединен, а второй устарел, как показано на этом изображении, Mergify убедится, что запрос 2 обновлен последней веткой базовой ветки перед объединением.

Установка

  • Сначала нам нужно войти в Mergify и разрешить доступ к нашему репозиторию Github. Это должно установить Mergify в нашей учетной записи Github.

  • Нажмите на Enable Mergify и затем выберите все репозитории или любой конкретный репозиторий в соответствии с вашими требованиями.

  • Теперь вы увидите приборную панель. Здесь вы можете управлять выбранными репозиториями, записывать конфигурационные файлы (правила записи и связанные с ними действия), очереди слияния и многое другое.

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

Файл конфигурации должен быть создан в корневом каталоге репозитория и назван либо .mergify.yml, либо .mergify/config.yml, либо .github/mergify.yml. Как следует из названия файла, формат файла конфигурации основан на YAML, упрощенном формате файлов для данных.

Конфигурация

Документация по файлу конфигурации

Вы можете начать работу, используя код в Config Editor в Mergify.

pull_request_rules:
  - name: Automatic merge on approval
    conditions:
      - "#approved-reviews-by>=1"
    actions:
      merge:
        method: merge
Вход в полноэкранный режим Выход из полноэкранного режима

Он состоит из:-

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

Пример

Давайте рассмотрим пример. Мы попробуем использовать конфигурацию слияния, описанную выше, которая автоматически объединяет запрос, если один или несколько рецензентов одобряют запрос.

  • Здесь вы видите созданный запрос на слияние.

  • Я просто одобрю заявку.

  • Вуаля! Бот Mergify автоматически объединяет заявку на исправление.

Вы также можете автоматически назначать рецензентов на основе типа измененного файла. Пример: Если в PR изменены файлы python, назначьте их человеку A, если изменены файлы java, назначьте его человеку B, и так далее.

pull_request_rules:
  - name: assign PRs with Python files modified to Rishwanth
    conditions:
      - "check-success=ci/circleci: validate"
      - files~=.python$
    actions:
      assign:
          add_users:
              - rishwanthram
Вход в полноэкранный режим Выход из полноэкранного режима

Это лишь небольшой пример из бесконечного множества удивительных вещей, которые может делать Mergify. Вот список действий, которые вы можете выполнять с помощью Mergify.

Заключение

В этом блоге вы узнали, как начать работу с Mergify. Mergify — это отличный инструмент, который может помочь в автоматизации при работе с системами контроля версий и сэкономить много времени. Я надеюсь, что вы узнали что-то новое из этого блога и попробуете Mergify. Вы можете перейти на сайт Mergify, чтобы прочитать официальную документацию и узнать о нем больше.

PS: Я также разместил этот блог на HashNode. Если он вам понравился, проголосуйте за него в HashNode, это будет полезно. Ссылка

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

Оцените статью
devanswers.ru
Добавить комментарий