Skip to main content

Сведения о перехватчиках предварительного получения

Обработчики предварительного получения — это скрипты, выполняемые на устройстве GitHub Enterprise Server, которые можно использовать для реализации проверок качества.

Сведения о перехватчиках предварительного получения

При отправке каждый скрипт выполняется в изолированной среде и может проводить проверки содержимого отправки. Отправка принимается, если состояние выхода скриптов имеет значение 0, или отклоняется при ином состоянии выхода.

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

Примеры использования перехватчиков предварительного получения:

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

Примеры перехватчиков предварительного получения для GitHub Enterprise Server можно просмотреть в репозитории github/platform-samples.

Влияние на производительность и рабочие процессы

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

Предварительные перехватчики могут иметь непреднамеренные последствия для производительности ваш экземпляр GitHub Enterprise Server и должны быть тщательно реализованы и проверены.

Из-за риска сбоя и влияния на производительность для всех пользователей экземпляра рекомендуется следующее.

  • Избегайте запросов API в перехватчике предварительного получения. В частности, настоятельно рекомендуется выполнять запросы к внешним службам, что может занять больше времени и может привести к сложному влиянию на производительность.
  • Избегайте длительных операций Git в перехватчике перед получением. Если ваш перехватчик предварительного получения выполняет операции Git в больших или занятых репозиториях, Git экземпляра и общая производительность могут негативно повлиять.

Note

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