2013-06-17 12 views
26

Tôi đã đọc rằng GitLab có khả năng gửi tin nhắn đến các máy chủ khác qua "móc nối web" nhưng tôi không thể tìm thấy trong đó người ta sẽ tạo một thư.Làm cách nào để tạo webhook GitLab?

Ai đó có thể chỉ cho tôi đúng hướng không?

Trả lời

51

Tất cả các câu trả lời tôi đã tìm thấy trong tài liệu chính thức và trên Stack Overflow cho việc tìm kiếm web hooks không chính xác. Trang admin area > hooks không chứa trang web móc. Nó chứa hệ thống móc, sẽ kích hoạt khi bạn tạo/xóa các dự án và người dùng và những thứ tương tự. Đây không phải điều bạn muốn.

Để tìm móc nối web của bạn, hãy truy cập trang specific project > settings > web hooks (on sidebar in GitLab 6.1.0). Chúng sẽ kích hoạt sau khi nhận cho dự án được đề cập. Bạn có thể sử dụng một dịch vụ như RequestBin để xem tải trọng trông như thế nào và để đảm bảo bạn đang kích hoạt một cách chính xác cho mục đích gỡ lỗi.

+5

Câu trả lời chính xác hơn tôi. +1. Đây sẽ là câu trả lời được chấp nhận. – VonC

+1

Cảm ơn câu trả lời Jamey. Có tài liệu chính thức về các móc nối web và máy chủ GitLab trong chính ứng dụng: http://demo.gitlab.com/help/web_hooks và http://demo.gitlab.com/help/system_hooks. Thông tin đăng nhập cho máy chủ demo được liệt kê trên http://demo.gitlab.com/. –

+0

Thật tuyệt vời! Nó vẫn không cho bạn biết * nơi * để tìm móc web, mặc dù. Đó là vấn đề mà @leech và tôi đã trải qua một thời gian trở lại. – Jamey

4

Bạn có thể xem ví dụ về móc hệ thống GitLab, với việc tạo web_hook.rb trong GitHub project này.

Trong gitlab, như admin, đi đến "Hooks" tab, tạo móc như: http://your.ip.goes.here:8000

hoặc thay đổi cổng trên đường dây 175 của kịch bản.

Đối với móc web, hãy xem Jamey 's more accurate answer.

Bạn có thể kiểm tra kết quả của một webhook với một dịch vụ như RequestBin.
Ví dụ khác về diễn giải webhook: this question.

Hãy nhận biết rằng mặc dù một vài vấn đề vẫn còn với gitlab webhook:

2

Đối móc cấp độ nhóm:

truy cập: https://gitlab.com/groups/<yourgroup>/hooks

Đối móc mức dự án nhóm:

truy cập: https://gitlab.com/yourgroup/yourproject/hooks

4

Với phiên bản 8,16.1, tôi thấy các móc web dưới

specific project > settings > integrations 

enter image description here

2

tôi khuyên bạn nên sử dụng GitLabForm - cấu hình như công cụ mã cho GitLab - để cấu hình webhooks với mã như thế này:

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 

Tiết lộ: Tôi đã viết công cụ này và công ty của tôi có nguồn mở.