如何创建GitLab Webhook?

46

我读过 GitLab 能够通过 "web hooks" 向其他服务器发送消息,但是我找不到 在哪里 创建它。

有人能指点我吗?

5个回答

70

我在官方文档和 Stack Overflow 上找到的有关查找Web Hooks的所有答案都是错误的。在 管理区域 > 钩子 页面中并没有包含Web钩子,而是包含系统钩子,当您创建/删除项目、用户等时会触发这些钩子。这不是您想要的。

要找到您的Web钩子,请进入特定项目 > 设置 > Web钩子(GitLab 6.1.0中的侧边栏)页面。这些将在有关项目的提交后触发。您可以使用像RequestBin这样的服务来查看负载的样子,并确保为调试目的正确地触发它们。


7
比我更准确的答案。+1。这应该被接受为答案。 - VonC
1
感谢您的回答,Jamey。GitLab网站和应用程序本身中都有关于Web和服务器钩子的官方文档:http://demo.gitlab.com/help/web_hooks 和 http://demo.gitlab.com/help/system_hooks。演示服务器的登录凭据列在http://demo.gitlab.com/上。 - Sytse Sijbrandij
太好了!不过它仍然没有告诉你在哪里找到Web钩子。这就是@leech和我一段时间以来遇到的问题。 - Jamey
3
系统挂钩仍然是Web挂钩,只是针对系统事件而不是存储库事件的Web挂钩。 - Michael Mior
Webhooks 通过网站进行激活和“配置”。但是后端实现文档是 GItlab Webhooks doc - MensSana
显示剩余3条评论

30

在版本8.16.1中,我发现了网页钩子(web hooks),它们位于

specific project > settings > integrations

这里输入图片描述


6

对于组级别的钩子:

访问:https://gitlab.com/groups/<yourgroup>/hooks

对于组项目级别的钩子:

访问:https://gitlab.com/yourgroup/yourproject/hooks


4
您可以在这个GitHub项目中创建一个web_hook.rb,并查看GitLab系统钩子的示例。
作为管理员,在GitLab中,前往“Hooks”选项卡,创建钩子: http://your.ip.goes.here:8000 或者更改脚本的第175行端口。
有关Web钩子,请参阅Jamey更准确的答案
您可以使用RequestBin等服务检查Webhook的结果。另一个Webhook解释的示例是这个问题
但请注意,GitLab Webhook仍存在一些问题:

3
我建议使用GitLabForm——一个配置为代码的工具,用于配置GitLab中的Webhook,代码如下:

GitLabForm

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

声明:我编写了这个工具,我的公司将其开源。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接