45

我读过 GitLab 能够通过“网络挂钩”向其他服务器发送消息,但我找不到在哪里创建一个。

有人可以指出我正确的方向吗?

4

5 回答 5

69

我在官方文档和 Stack Overflow 上找到的所有用于查找网络挂钩的答案都是不正确的。该admin area > hooks页面不包含网络挂钩。它包含系统挂钩,当您创建/删除项目和用户以及类似的东西时会触发。这不是你想要的。

要查找您的网络挂钩,请转到该specific project > settings > web hooks (on sidebar in GitLab 6.1.0)页面。这些将在相关项目的接收后触发。您可以使用RequestBin之类的服务来查看有效负载的外观,并确保您出于调试目的正确触发它们。

于 2013-09-19T17:41:20.137 回答
30

在 8.16.1 版本中,我在下面找到了网络挂钩

specific project > settings > integrations

在此处输入图像描述

于 2017-01-25T20:25:18.013 回答
6

对于组级挂钩:

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

对于组项目级挂钩:

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

于 2016-10-20T19:24:16.457 回答
4

你可以在这个GitHub 项目中看到一个 GitLab 系统钩子的示例,其中包含一个web_hook.rb创建。

在 gitlab 中,以管理员身份进入“ Hooks”选项卡,创建钩子为:http: //your.ip.goes.here :8000

或更改脚本第 175 行的端口。

对于网络挂钩,请参阅Jamey更准确答案

您可以使用RequestBin 之类的服务检查 webhook 的结果。
webhook 解释的另一个例子:this question

请注意,gitlab webhook 仍然存在一些问题:

于 2013-06-18T06:54:58.620 回答
3

我建议使用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

披露:我编写了这个工具,我的公司开源了它。

于 2017-08-21T20:00:45.470 回答