Дженкинс и GitHub webhook: HTTP 403 - PullRequest
       49

Дженкинс и GitHub webhook: HTTP 403

13 голосов
/ 15 сентября 2011

У меня есть репозиторий GitHub, о котором я хотел бы уведомить Дженкинса о новых коммитах с помощью перехвата после получения.Я установил плагин GitHub в Jenkins и позволил Jenkins управлять своими собственными URL-адресами хуков.Проект имеет правильный URL-адрес хранилища git и получает команду «Построить, когда изменения передаются в GitHub».Когда я заставляю GitHub отправлять тестовую полезную нагрузку, я нахожу это на веб-сервере nginx Jenkins:

207.97.227.233 - - [15/Sep/2011:07:36:51 +0000] "POST /github-webhook/ HTTP/1.1" 403 561 "-" "-"

Я использовал SSL, поэтому отключил его, но он не работал.Нужно ли предоставлять специальные разрешения анонимному пользователю в матрице разрешений?

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

Ответы [ 3 ]

32 голосов
/ 15 сентября 2011

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

https://foo:password@jenkins.example.com/github-webhook/
1 голос
/ 24 августа 2018

Как упоминалось ранее, Jenkins не разрешает анонимный доступ (вы не хотите, чтобы люди запускали сборки для вас!). Добавление имени пользователя и пароля в открытом виде - не лучшее решение.

1) Если ваш Jenkins находится за VPN, вам нужно убедиться, что URL вашего Jenkins webhooks открыт

2) В конфигурации плагина GitHub добавьте правильный доступный URL-адрес веб-крючка Jenkins (https://jenkins.example.com/github-webhook/) в Override Hook URL

3) Добавьте секрет в секцию Shared secret (желательно длинную случайную строку). Это будет токен, отправленный из Jenkins на GitHub и наоборот для аутентификации. Это должно отличаться от учетных данных сервера GitHub!

4) Убедитесь, что у пользователя есть доступ владельца для добавления веб-хуков в репозитории GitHub

5) Не забудьте перерегистрировать вебхуки после этого

0 голосов
/ 21 апреля 2017

https://username:password@jenkins.example.com/github-webhook/ работал для меня, но пароль должен быть закодирован для полезной нагрузки для работы. Мой github не смог связаться с jenkins из-за авторизации nginx, но передача имени пользователя и зашифрованного пароля сработала!

...