我读过 GitLab 能够通过“网络挂钩”向其他服务器发送消息,但我找不到在哪里创建一个。
有人可以指出我正确的方向吗?
我在官方文档和 Stack Overflow 上找到的所有用于查找网络挂钩的答案都是不正确的。该admin area > hooks
页面不包含网络挂钩。它包含系统挂钩,当您创建/删除项目和用户以及类似的东西时会触发。这不是你想要的。
要查找您的网络挂钩,请转到该specific project > settings > web hooks (on sidebar in GitLab 6.1.0)
页面。这些将在相关项目的接收后触发。您可以使用RequestBin之类的服务来查看有效负载的外观,并确保您出于调试目的正确触发它们。
对于组级挂钩:
访问:https://gitlab.com/groups/<yourgroup>/hooks
对于组项目级挂钩:
访问:https://gitlab.com/yourgroup/yourproject/hooks
你可以在这个GitHub 项目中看到一个 GitLab 系统钩子的示例,其中包含一个web_hook.rb创建。
在 gitlab 中,以管理员身份进入“
Hooks
”选项卡,创建钩子为:http: //your.ip.goes.here :8000或更改脚本第 175 行的端口。
您可以使用RequestBin 之类的服务检查 webhook 的结果。
webhook 解释的另一个例子:this question。
请注意,gitlab webhook 仍然存在一些问题:
我建议使用GitLabForm - 作为 GitLab 的代码工具的配置 - 使用如下代码配置 webhook:
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
披露:我编写了这个工具,我的公司开源了它。