Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Примечание: Функция очереди слияния запросов на вытягивание в настоящее время находится в общедоступной бета-версии и может быть изменена.

Сведения об очередях слияния

Кто может использовать эту функцию

People with admin permissions can manage merge queues for pull requests targeting selected branches of a repository.

Очереди слияния запросов на вытягивание доступны в любом общедоступном репозитории, принадлежащей организации, или в частных репозиториях, принадлежащих организациям, использующим GitHub Enterprise Cloud. Дополнительные сведения см. в разделе Продукты GitHub.

Очередь слияния создает временные ветви со специальным префиксом для проверки изменений запроса на вытягивание.

Затем изменения в запросе на вытягивание группируются в merge_group с последней версией base_branch, а также последующими изменениями в очереди.

GitHub Enterprise Cloud выполнит слияние для всех изменений в base_branch после завершения проверок, необходимых для защиты ветви base_branch.

Сведения о методах слияния см. в разделе Сведения о слиянии запросов на вытягивание.

Примечания.

Очередь слияния не может быть включена при правилах защиты ветви, использующих подстановочные знаки (*) в шаблоне имени ветви.

Очередь слияния будет ожидать отправки необходимых проверок, прежде чем она сможет продолжить слияние.

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

  • После группировки запроса на вытягивание с последней версией целевой ветви и изменениями перед ней в очереди, то если не произошли ошибки проверки состояния или конфликты с базовой ветвью, GitHub Enterprise Cloud удалит запрос на вытягивание из очереди. На временной шкале запроса на вытягивание отобразится причина удаления запроса на вытягивание из очереди. Активация проверок группы слияния с помощью GitHub Actions
  • Вы можете использовать событие merge_group для активации рабочего процесса GitHub Actions при добавлении запроса на вытягивание в очередь слияния.

    Обратите внимание, что это событие отличается от событий pull_request и push.

    Рабочий процесс, сообщающий о проверке, которая требуется для защиты целевой ветви, будет выглядеть следующим образом:

    Дополнительные сведения см. в разделе События, инициирующие рабочие процессы. Активация проверок группы слияния с использованием других поставщиков CI

    При использовании других поставщиков CI, возможно, потребуется обновить конфигурацию CI для запуска при создании ветви, которая начинается со специального префикса gh-readonly-queue/{base_branch}.

    on:
      pull_request:
      merge_group:
    

    Управление очередью слияния

    Администраторы репозитория могут требовать очередь слияния, включив параметр защиты ветви "Требовать очередь слияния" в правилах защиты для базовой ветви.

    Дополнительные сведения см. в разделе Управление правилом защиты ветвей.

    После включения параметра "Требовать очередь слияния" вы также можете получить доступ к следующим параметрам:

    Метод слияния. Выберите метод, используемый при слиянии запросов на вытягивание в очереди: слияние, перебазирование или сквоша. Параллелизм сборки. Выберите максимальное число запросов на вытягивание для сборки (от 1 до 100).

    Этот параметр ограничивает количество запросов на вытягивание в очереди, которые могут одновременно выполнять проверки CI.

    • Ограничения слияния. Выберите минимальное и максимальное количество запросов на вытягивание для слияния в одной группе (от 1 до 100) и время ожидания, после которого очередь должна перестать ждать больше записей и объединяться с меньшим количеством запросов на вытягивание.

    • Только неисправные запросы на вытягивание слиянием. Этот параметр определяет, как очередь слияния формирует группы запросов на вытягивание для объединения. Если этот параметр выбран, в группу можно добавить только запросы на вытягивание, которые проходят необходимые проверки CI.

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

    • Если этот параметр не выбран, запросы на вытягивание, не прошедшие обязательные проверки, можно добавить в группу, если последний запрос на вытягивание в группе прошел необходимые проверки.

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

      Время ожидания проверки состояния. Выберите, как долго очередь должна ожидать ответа от CI, прежде чем предполагать, что проверки завершились сбоем. Дополнительные материалы "Слияние для запроса на вытягивание с очередью слияния"

    • "Сведения о защищенных ветвях"

    Further reading