Comment créer un webhook GitLab?
J'ai lu que GitLab est capable d'envoyer des messages à d'autres serveurs via" web hooks "mais je ne trouve pas où on en créerait un.
Quelqu'un peut-il m'indiquer la bonne direction?
5 réponses
toutes les réponses que j'ai trouvées dans la documentation officielle et sur le débordement de la pile pour trouver web hooks sont incorrectes. La page admin area > hooks
ne contient pas les crochets web . Il contient système crochets, qui se déclenchent lorsque vous créez/supprimez des projets et des utilisateurs et des choses comme cela. Ce n'est pas ce que vous voulez.
pour trouver vos crochets web, allez à la page specific project > settings > web hooks (on sidebar in GitLab 6.1.0)
. Ces incendies sur des post-recevoir pour le projet en question. Vous pouvez utiliser un service comme RequestBin pour voir à quoi ressemble la charge utile et pour vous assurer que vous les déchargez correctement à des fins de débogage.
vous pouvez voir un exemple de GitLab system hook, avec un web_hook.rb création dans ce projet GitHub .
Dans gitlab, en tant qu'admin, allez dans "
Hooks
onglet " créer crochet comme: http://your.IP.aller.ici: 8000ou changez le port sur la ligne 175 du script.
pour les crochets, voir Jamey 's réponse plus précise .
vous pouvez inspecter le résultat d'un webhook avec un service comme RequestBin .
Un autre exemple d'interprétation de webhook: cette question .
soyez conscient cependant que quelques problèmes restent avec gitlab webhook:
pour les crochets de niveau de groupe:
"151920920 de visite":https://gitlab.com/groups/<yourgroup>/hooks
pour les crochets de groupe au niveau du projet:
"151920920 de visite":https://gitlab.com/yourgroup/yourproject/hooks
je recommande d'utiliser GitLabForm - configuration comme outil de code pour GitLab-pour configurer les webhooks avec le code comme ceci:
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
Divulgation: j'ai écrit cet outil et de mon entreprise open-source.