Сведения о перехватчиках предварительного получения
При отправке каждый скрипт выполняется в изолированной среде и может проводить проверки содержимого отправки. Отправка принимается, если состояние выхода скриптов имеет значение 0, или отклоняется при ином состоянии выхода.
Используйте перехватчики предварительного получения для выполнения бизнес-правил, обеспечения соответствия нормативным требованиям и предотвращения некоторых распространенных ошибок.
Примеры использования перехватчиков предварительного получения:
- обязательное соответствие сообщений о фиксации определенному шаблону или формату, например наличие допустимого номера обращения или определенная длина сообщений;
- блокировка ветви или репозитория путем отклонения всех отправок;
- запрет на добавление конфиденциальных данных в репозиторий путем блокировки ключевых слов, шаблонов или типов файлов;
- предотвращение слияния собственных изменений автором запроса на вытягивание.
Примеры перехватчиков предварительного получения для GitHub Enterprise Server можно просмотреть в репозитории github/platform-samples
.
Влияние на производительность и рабочие процессы
Влияние на разработчиков и их рабочие процессы может быть значительным и должно быть тщательно рассмотрено. Перехватчики предварительного получения должны быть грамотно реализованы с учетом бизнес-потребностей, чтобы приносить максимальную пользу организации в целом.
Предварительные перехватчики могут иметь непреднамеренные последствия для производительности ваш экземпляр GitHub Enterprise Server и должны быть тщательно реализованы и проверены.
Из-за риска сбоя и влияния на производительность для всех пользователей экземпляра рекомендуется следующее.
- Избегайте запросов API в перехватчике предварительного получения. В частности, настоятельно рекомендуется выполнять запросы к внешним службам, что может занять больше времени и может привести к сложному влиянию на производительность.
- Избегайте длительных операций Git в перехватчике перед получением. Если ваш перехватчик предварительного получения выполняет операции Git в больших или занятых репозиториях, Git экземпляра и общая производительность могут негативно повлиять.
Note
Чтобы избежать отказа от отправки из-за времени ожидания, все объединенные перехватчики предварительного получения должны работать в течение пяти секунд.