web-dev-qa-db-ja.com

GitLab webhookを作成するにはどうすればよいですか?

GitLabが「ウェブフック」を介して他のサーバーにメッセージを送信できることを読んだことがありますが、見つけることができませんwhere oneが作成されます。

誰かが私を正しい方向に向けることができますか?

38
leech

webフックを見つけるための公式ドキュメントとStack Overflowで私が見つけた答えはすべて間違っています。 _admin area > hooks_ページにはwebフックが含まれていません。これにはsystemフックが含まれています。このフックは、プロジェクトやユーザーなどを作成/削除するときに起動します。これはあなたが望むものではありません。

Webフックを見つけるには、specific project > settings > web hooks (on sidebar in GitLab 6.1.0)ページに移動します。これらは、問題のプロジェクトの受信後発生します。 RequestBin のようなサービスを使用して、ペイロードがどのように見えるかを確認し、デバッグのためにこれらを正しく起動していることを確認できます。

62
Jamey

バージョン8.16.1では、以下のWebフックが見つかりました

specific project > settings > integrations

enter image description here

23
derwiwie

グループレベルのフックの場合:

訪問:https://gitlab.com/groups/<yourgroup>/hooks

グループプロジェクトレベルのフックの場合:

訪問:https://gitlab.com/yourgroup/yourproject/hooks

5
Blair Anderson

この GitHubプロジェクトweb_hook.rb を作成すると、GitLabシステムフックの例を見ることができます。

Gitlabで、管理者として「Hooks」タブに移動し、次のようにフックを作成します。 http://your.ip.goes.here:80

または、スクリプトの175行目のポートを変更します。

Webフックについては、 Jameyより正確な回答 を参照してください。

RequestBin のようなサービスでwebhookの結果を調べることができます。
ウェブフックの解釈の別の例: この質問

ただし、gitlab webhookにはいくつかの問題が残っていることに注意してください。

4
VonC

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

開示:私はこのツールを書いて、私の会社はそれをオープンソースにしました。

3
Greg Dubicki