J'ai lu que GitLab est capable d'envoyer des messages à d'autres serveurs via des "hooks web" mais je ne trouve pas où on en créerait un.
Quelqu'un peut me diriger dans la bonne direction?
Toutes les réponses que j'ai trouvées dans la documentation officielle et sur Stack Overflow pour trouver les hooks web sont incorrectes. La page admin area > hooks
Ne contient PAS crochets Web . Il contient des crochets système , qui se déclenchent lorsque vous créez/supprimez des projets et des utilisateurs et des choses comme ça. Ce n'est pas ce que tu veux.
Pour trouver vos hooks web, rendez-vous sur la page specific project > settings > web hooks (on sidebar in GitLab 6.1.0)
. Ceux-ci se déclencheront après réception 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éclenchez correctement à des fins de débogage.
Pour les hooks au niveau du groupe:
visite: https://gitlab.com/groups/<yourgroup>/hooks
Pour les hooks de niveau projet de groupe:
visite: https://gitlab.com/yourgroup/yourproject/hooks
Vous pouvez voir un exemple de hook système GitLab, avec une création web_hook.rb dans ce projet GitHub .
Dans gitlab, en tant qu'administrateur, allez dans l'onglet "
Hooks
", créez un hook comme: http://your.ip.goes.here:80ou changez le port sur la ligne 175 du script.
Pour les crochets Web, 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 .
Sachez cependant que quelques problèmes persistent avec le webhook gitlab:
Je recommande d'utiliser GitLabForm - configuration comme outil de code pour GitLab - pour configurer les webhooks avec du 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 mon entreprise l'a source ouverte.