Отсутствующие поставки веб-перехватчика
Если вы не получаете доставку веб-перехватчика, которую вы ожидаете, следует определить точку, в которой отсутствует доставка.
-
Активируйте событие, которое ожидается привести к доставке веб-перехватчика. Например, если веб-перехватчик является веб-перехватчиком репозитория, который подписан
issuesна событие, можно открыть проблему в этом репозитории. -
Просмотрите журнал последних поставок для веб-перехватчика. Сведения о том, как это сделать для каждого типа веб-перехватчика, см. в разделе Просмотр доставленных данных веб-перехватчика.
Если журнал недавних поставок не включает доставку, соответствующую событию веб-перехватчика, которое было активировано на предыдущем шаге, то GitHub не пытались выполнить доставку. Чтобы определить причину, выполните следующие действия.
-
Подождите несколько минут, а затем снова проверьте. Доставка веб-перехватчика может занять несколько минут.
-
Убедитесь, что вы активировали событие в расположении, где настроен веб-перехватчик. Например, если веб-перехватчик является веб-перехватчиком репозитория, убедитесь, что вы активировали событие в том же репозитории, где настроен веб-перехватчик.
-
Убедитесь, что веб-перехватчик подписан на событие, которое вы активировали. Например, если при открытии проблемы ожидается доставка веб-перехватчика, убедитесь, что веб-перехватчик подписан на
issuesсобытие. -
Убедитесь, что веб-перехватчик активен. Дополнительные сведения см. в разделе Отключение веб-перехватчиков.
-
Убедитесь, что веб-перехватчик не влияет на ограничения доступа OAuth app. Если веб-перехватчик был создан OAuth app от имени пользователя, авторизованного OAuth app, веб-перехватчик будет автоматически отключен, если это организация или веб-перехватчик репозитория для организации, которая имеет ограниченный доступ к OAuth app. Дополнительные сведения см. в разделе Сведения об ограничениях доступа к приложению OAuth.
-
Проверьте, может ли событие достигнуть задокументированного ограничения. Например, при отправке нескольких трех тегов
pushсобытие не будет активировано для отправки. Дополнительные сведения об задокументированных ограничениях для каждого события см. в разделе События и полезные данные веб-перехватчика. -
Проверьте состояние веб-перехватчиков в githubstatus.com.
Если в журнале недавних поставок указано, что с доставкой произошла ошибка, то GitHub попыталась выполнить доставку, но доставка была неудачной. Обычно это связано с проблемой с сервером. См. приведенные ниже разделы, чтобы устранить определенную ошибку.
-
-
Просмотрите журналы для сервера. Сведения в журналах зависят от кода, выполняемого сервером для обработки доставки веб-перехватчиков. Для диагностики проблем на сервере может потребоваться добавить дополнительные инструкции журнала в код.
Не удается иметь более 20 webhooks
Можно создать до 20 репозитория или организации webhooks для каждого типа события. Если вы пытаетесь создать больше, вы получите сообщение об ошибке о том, что у вас не может быть больше 20 веб-перехватчиков.
Если требуется более 20 webhooks, можно запустить прокси-сервер, который получает веб-перехватчики из GitHub и перенаправляет их на неограниченное количество URL-адресов назначения.
Локальный узел URL-адреса не поддерживается
Нельзя использовать localhost или 127.0.0.1 как URL-адрес веб-перехватчика.
Для доставки веб-перехватчиков на локальный сервер для тестирования можно использовать службу пересылки веб-перехватчиков. Дополнительные сведения см. в разделе Тестирование веб-перехватчиков или посетите сайт https://smee.io/.
Не удалось подключиться к узлу
Ошибка возникает, когда GitHub пытается доставить вебхук, но не удаётся разрешить URL вебхука на IP-адрес, либо существуют сетевые ограничения, failed to connect to host мешающие подключению к хосту.
Чтобы проверить, разрешается ли имя узла в IP-адрес, можно использовать nslookup. Например, если URL-адрес полезных данных имеет значение https://octodex.github.com/webhooks, можно запустить nslookup octodex.github.com. Если имя узла не удалось разрешить в IP-адрес, команда nslookup будет указывать, что сервер не может найти имя узла.
Убедитесь, что сервер разрешает подключения с GitHub. Вы можете использовать конечную точку GET /meta для поиска текущего списка данных . Дополнительные сведения см. в разделе Конечные точки REST API для метаданных. GitHub иногда вносит изменения в его IP-адреса, поэтому периодически следует обновлять список разрешений IP-адресов.
Не удалось подключиться к сети
Ошибка failed to connect to network указывает, что сервер отказался от подключения, когда GitHub попыталась доставить веб-перехватчик.
Убедитесь, что сервер разрешает подключения с GitHub. Вы можете использовать конечную точку GET /meta для поиска текущего списка данных . Дополнительные сведения см. в разделе Конечные точки REST API для метаданных. GitHub иногда вносит изменения в его IP-адреса, поэтому периодически следует обновлять список разрешений IP-адресов.
Истекло время ожидания
Ошибка timed out указывает, что GitHub не получил ответ от сервера в 10 секунды доставки веб-перехватчика.
Сервер должен реагировать на ответ 2xx в 10 секунды получения доставки веб-перехватчика. Если сервер занимает больше времени, чем для ответа, GitHub завершает подключение и рассматривает сбой доставки.
Чтобы своевременно реагировать, может потребоваться настроить очередь для обработки полезных данных веб-перехватчика асинхронно. Сервер может реагировать, когда он получает веб-перехватчик, а затем обрабатывать полезные данные в фоновом режиме, не блокируя будущие поставки веб-перехватчика. Например, можно использовать такие службы, как Hookdeck или библиотеки, такие как Resque (Ruby), RQ (Python) или RabbitMQ.
Не удается пройти проверку подлинности однорангового сертификата с помощью заданных сертификатов ЦС
Эта ошибка означает, что возникла проблема, связанная с сертификатами сервера. Наиболее распространенными проблемами являются:
- Сервер использует самозаверяющий сертификат.
- Сервер не отправляет полную цепочку сертификатов при установке подключения.
Чтобы диагностировать проблему, можно использовать тест SSL-сервера из лабораторий SSL. Эта служба может работать только с портом по умолчанию для HTTPS (порт 443) и работать только с серверами, доступными из Интернета.
Вы также можете использовать openssl для диагностики проблемы. Для этого запустите openssl s_client -connect HOST:PORT терминал. Замените HOST именем узла сервера и PORT портом. Например, openssl s_client -connect example.com:443. Чтобы определить проблемы, найдите verify error в выходных данных.
Недопустимый HTTP-ответ
Ошибка invalid HTTP response возникает, когда сервер возвращает состояние 4xx или 5xx в ответ на доставку веб-перехватчика из GitHub.
Необходимо настроить сервер для возврата состояния 2xx. Если сервер возвращает состояние 4xx или 5xx, GitHub записывает доставку как сбой.
Доставка веб-перехватчиков не упорядочена
GitHub может доставлять веб-перехватчики в другом порядке, чем в порядке, в котором произошли события. Если необходимо знать, когда событие произошло относительно другого события, следует использовать метки времени, включенные в полезные данные доставки.
Доставка веб-перехватчика не является немедленной
Доставка веб-перехватчика может занять несколько минут и появиться в журнале последних поставок. Прежде чем завершить доставку веб-перехватчика, подождите несколько минут, а затем снова проверьте.
Если ваша учетная запись испытывает всплеск поставок веб-перехватчика, GitHub может временно опустить частоту поставок в вашу учетную запись. Если доставка веб-перехватчика замедляется с помощью GitHub, throttled_at свойство для каждой затронутой доставки показывает метку времени при регулировании доставки. Это можно проверить с помощью REST API, см. в разделе "Список поставок" для веб-перехватчика репозитория.
Чтобы избежать задержек, подпишитесь только на события веб-перехватчика, необходимые для вашей учетной записи, уменьшая частоту доставки. См. раздел "Рекомендации по использованию веб-перехватчиков".
Сбой проверки подписи
Необходимо использовать секрет веб-перехватчика и X-Hub-Signature-256 заголовок, чтобы убедиться, что доставка веб-перехватчика осуществляется из GitHub. Дополнительные сведения см. в разделе Проверка доставки веб-перехватчика.
Если вы уверены, что полезные данные находятся из GitHub, но проверка подписи завершается ошибкой:
- Убедитесь, что вы настроили секрет для веб-перехватчика. Заголовок
X-Hub-Signature-256не будет присутствовать, если вы не настроили секрет для веб-перехватчика. Дополнительные сведения о настройке секрета для веб-перехватчика см. в разделе Редактирование веб-перехватчиков. - Убедитесь, что используется правильный заголовок. GitHub рекомендует использовать
X-Hub-Signature-256заголовок, который использует алгоритм HMAC-SHA256. ЗаголовокX-Hub-Signatureиспользует алгоритм HMAC-SHA1 и включается только в устаревшие цели. - Убедитесь, что используется правильный алгоритм. При использовании заголовка
X-Hub-Signature-256следует использовать алгоритм HMAC-SHA256. - Убедитесь, что вы используете правильный секрет веб-перехватчика. Если вы не знаете значение секрета веб-перехватчика, вы можете обновить секрет веб-перехватчика. Дополнительные сведения см. в разделе Редактирование веб-перехватчиков.
- Убедитесь, что полезные данные и заголовки не изменяются перед проверкой. Например, если вы используете прокси-сервер или подсистему балансировки нагрузки, убедитесь, что прокси-сервер или подсистема балансировки нагрузки не изменяет полезные данные или заголовки.
- Если в реализации языка и сервера указана кодировка символов, убедитесь, что полезные данные обрабатываются как символы UTF-8. Полезные данные веб-перехватчика могут содержать символы юникода.