Я читал, что GitLab способен отправлять сообщения на другие серверы через "веб-крючки", но я не могу найти, где его можно было бы создать.
Может ли кто-нибудь указать мне в правильном направлении?
Я читал, что GitLab способен отправлять сообщения на другие серверы через "веб-крючки", но я не могу найти, где его можно было бы создать.
Может ли кто-нибудь указать мне в правильном направлении?
Все ответы, которые я нашел в официальной документации, и "Переполнение стека" для поиска веб-крючков неверны. На странице admin area > hooks
не содержится крючков web. Он содержит крючки system, которые срабатывают при создании/удалении проектов и пользователей и тому подобных вещей. Это не то, что вы хотите.
Чтобы найти свои веб-крючки, перейдите на страницу specific project > settings > web hooks (on sidebar in GitLab 6.1.0)
. Они будут срабатывать после приема в рамках рассматриваемого проекта. Вы можете использовать услугу, например RequestBin, чтобы увидеть, как выглядит полезная информация, и убедиться, что вы правильно их отлаживаете для целей отладки.
Вы можете увидеть пример системного крючка GitLab с web_hook.rb в этом Проект GitHub.
В gitlab, как admin, перейдите на вкладку "
Hooks
", создайте hook как: http://your.ip.goes.here:8000или измените порт в строке 175 script.
Для веб-перехватчиков см. Jamey более точный ответ.
Вы можете проверить результат webhook с помощью службы, например RequestBin.
Другой пример интерпретации webhook: этот вопрос.
Помните, что с gitlab webhook осталось несколько вопросов:
С версией 8.16.1 я нашел веб-крючки под
specific project > settings > integrations
Для крючков уровня группы:
посетите: https://gitlab.com/groups/<yourgroup>/hooks
Для крючков уровня группового уровня:
посетите: https://gitlab.com/yourgroup/yourproject/hooks
Я рекомендую использовать GitLabForm - конфигурацию в качестве инструмента кода для GitLab - для настройки webhooks с кодом следующим образом:
project_settings:
my_group/my_project:
hooks:
hooks:
'http://127.0.0.1:5000/hooks/my-hook-endpoint':
push_events: false # this is set to true by GitLab API by default
merge_requests_events: true
token: some_secret_auth_token
Раскрытие: Я написал этот инструмент, и моя компания открыла его.