2009-12-16 23 views
8

Khi tôi đang hết dung lượng trên GitHub trên tài khoản miễn phí của mình (có, tôi đang xem xét nâng cấp), tôi đang thiết lập kho lưu trữ git mới trên Gitorious (xem thêm GitHub vs Gitorious). Một tính năng tuyệt vời của GitHub là móc hậu cam kết, cho phép tôi thông báo (cũng tuyệt vời) CIA network ...Gitorious có móc cho thông báo cam kết của CIA không?

Tuy nhiên, tôi không thể tìm thấy nếu Gitorious hỗ trợ các móc như vậy ... Vì vậy, tôi ' d muốn hỏi các phương pháp hay nhất để nhận thông báo cam kết hiển thị trên mạng CIA cho kho lưu trữ git được lưu trữ trên Gitorious.

Cập nhật: giải pháp sử dụng cơ chế thứ cấp để kích hoạt tin nhắn cam kết CIA không phải là những gì tôi đang tìm kiếm.

+1

Cũng tìm thấy câu hỏi được yêu cầu trên nhóm google nhưng không có câu trả lời: http://groups.google.com/group/gitorious/browse_thread/thread/3cf48f0f8631cf8a –

+1

KDE cũng đang gặp khó khăn với cùng các câu hỏi và dường như đã thực hiện một giải pháp tùy chỉnh: http://techbase.kde.org/Projects/MovetoGit#Post_Update_hooks –

Trả lời

2

Thay vì đẩy thẳng đến Gitorious, hãy đẩy tới kho lưu trữ cục bộ mà bạn đã định cấu hình (trong móc sau) để chuyển mọi thứ tới kho lưu trữ Gitorious và thông báo cho CIA.

+0

Tôi làm cách nào để định cấu hình kho lưu trữ cục bộ đó? –

+1

Đặt thông báo CIA của bạn trong móc cập nhật (@maxy đặt liên kết: http://cia.vc/clients/git/ciabot.bash). Trong hook post-update, đặt một "git push --mirror Gitorious/url" (hoặc git push --all, tùy theo cái nào thích hợp hơn) –

2

workaround hiện tại của tôi là để thiết lập một kho loal (gọi tắt là CIA) và luôn luôn đẩy qua một kịch bản shell nhỏ:

#!/bin/bash 
set -e 
git push origin master 
git push cia master 

Trong kho CIA địa phương Tôi đã cài đặt http://cia.vc/clients/git/ciabot.bash để gửi email cho CIA.

+0

Tôi đoán lần đẩy đầu tiên phải là một sự kéo? –

+0

không, tôi luôn luôn đẩy cùng một cam kết với hai kho lưu trữ khác nhau, một gitorious một (nguồn gốc) mà là nơi tôi muốn mã của tôi, và một địa phương của tôi (CIA) sẽ gửi email khi tôi đẩy – maxy

3

Dự án KDE đã có một câu hỏi tương tự trong that thread, với một sự thay thế thú vị:

Nó không cần thiết phải chạy trêngitorious.org máy. Ít nhất, không cho email/CIA/RSS/bất cứ báo cáo

Đó là cách git-p4 móc cũ của chúng tôi làm việc trong văn phòng:
máy p4 gửi ra một gói UDP với số sửa đổi. Một máy khác bắt được nó và thực hiện việc nhập khẩu. (Giá trị đã được loại bỏ)

Chúng ta có thể làm như vậy:

  • máy gitorious.org gửi một gói UDP với các ngành làm thay đổi và mới SHA-1 của họ.
  • Máy khác tìm nạp và tạo nhật ký cam kết.
    Kịch bản trường hợp xấu nhất là ai đó bị lãng quên do gói bị bỏ rơi UDP.

Như tôi đã nói, thao tác này để báo cáo - cho bất kỳ thứ gì được điều hành bởi một móc post-receive.
Đối với mọi thứ yêu cầu móc pre-receive (thực tế, pre-update, nhưng tên không đúng trong Git), nó sẽ phải được chạy trên máy chủ của họ.

+0

Ai là 'bạn' trong bình luận của bạn? –

+0

@Egon: xin lỗi, đó là bản chỉnh sửa không chính xác đầu tiên trong câu trả lời ban đầu của tôi. Tôi có nghĩa là dự án KDE. – VonC

5

Gitorious đang nhận hỗ trợ móc nối web. Nó hiện đang chạy trên gitorious.org, nhưng không có giao diện người dùng để thêm chúng vào kho lưu trữ của bạn; lý do cho điều này là vẫn có thể có sự thay đổi hoặc hai thay đổi đối với biểu diễn JSON của dữ liệu cam kết được hiển thị, vì vậy nó phải được cấu hình một tính năng beta.

Bất cứ ai cũng cảm thấy lên đến viết mã tích hợp (xử lý gitorious yêu cầu móc web), xin vui lòng gửi email đến hỗ trợ ít gitorious.org và chúng tôi sẽ thiết lập sự tích hợp cho kho lưu trữ của bạn

+0

Bạn có thể thêm một số URL để có thêm thông tin về sự hỗ trợ hook này không? –

+0

Ví dụ (và lịch sử) của tải trọng JSON được tạo tại http://www.postbin.org/wqpx3l – zmalltalker

+2

Đó là tháng 3 năm 2010. Bây giờ là năm 2012 và tôi vẫn không thấy tính năng này! –

1

Gitorious hỗ trợ "Móc Web ": http://gitorious.org/gitorious/pages/WebHooks

Đó là một chút nỗ lực, vì nó đòi hỏi bạn phải có một máy chủ web được thiết lập để nhận các cuộc gọi API móc.

Các vấn đề liên quan