2012-07-08 24 views
5

Tôi đã kích hoạt một phiên bản của GitHub Enterprise (11.10.272) và tạo một kho lưu trữ. Tôi đã viết một hook được nhận trước trong Ruby mà tôi muốn sử dụng với kho lưu trữ đó.Làm cách nào để thêm git hook tùy chỉnh vào repo GitHub Enterprise?

GitHub Enterprise, như GitHub thông thường, cho phép cấu hình móc dịch vụ. Tôi đã thử SSH vào máy chủ GitHub Enterprise để tạo một tệp móc, nhưng tôi không thể tìm thấy thư mục repo. Furthemore, các điều khoản của GitHub Enterprise cấm sửa đổi máy ảo, vì vậy tôi không tự tin đây là một cách tiếp cận tuyệt vời.

Dường như GitHub: FI được hỗ trợ móc. Phiên bản hiện tại của công cụ di chuyển FI sang Enterprise hiện không hỗ trợ móc theo Migrating from GitHub:FI.

+0

Ben, bạn có thể chia sẻ cho tôi chiếc móc ruby ​​được nhận trước không? Có kế hoạch để có một móc trước khi nhận trong github nhưng tôi không có ý tưởng về ruby ​​và chỉ muốn xem một ví dụ. –

Trả lời

3

Dựa trên email của tôi với sự hỗ trợ của khách hàng GitHub, trước nhận móc không được hỗ trợ cho GitHub Doanh nghiệp tính đến tháng năm 2013.

Chúng tôi không có quyền truy cập quản trị vào hộp ghe của chúng tôi, vì vậy chúng tôi không thể đi vào và "sửa" điều này nếu chúng ta muốn.

Họ tuyên bố rằng những điều họ làm sẽ phá vỡ nếu bạn có thể từ chối cam kết. Tôi cho rằng chúng có nghĩa là những thứ như tự động kết hợp các yêu cầu kéo, nhưng tôi không chắc chắn.

Họ có một loạt các webhooks sau cam kết mà bạn có thể sử dụng cho chức năng sau cam kết.

Tôi đang xem xét việc xây dựng "máy chủ git pass-through" - về cơ bản, thăm dò API GHE thường xuyên để tạo bản sao cục bộ của bất kỳ repo nào tồn tại trên một số tài khoản GHE và sau đó tự động sao chép nó móc trước và sau khi nhận. Điều này sẽ cho phép chúng tôi sao chép ra khỏi máy chủ pass-through, làm các hook nhận trước của chúng ta ở đó, và đẩy các thay đổi được phê duyệt thông qua GHE. Dường như không có bất kỳ loại máy chủ thông qua tiêu chuẩn nào cho git, có lẽ vì bạn cần phải biết những gì repos để sao chép, mà dường như không có một API git tiêu chuẩn.

2

GitHub Doanh nghiệp dường như lưu trữ các kho lưu trữ trong /data/repositories. Mỗi kho lưu trữ có các móc được tạo bởi một khuôn mẫu. Tôi có thể sửa đổi những cái móc này, nhưng điều đó chắc chắn sẽ phá vỡ cái gì đó. Các móc mẫu có vẻ như tìm móc ở một vị trí khác, nhưng vị trí đó được định nghĩa trong cấu hình và tôi không thể tìm thấy nó.

5

Tôi biết rằng điều này thực sự cũ, nhưng GitHub Enterprise 2.6 chỉ xuất hiện với móc trước khi nhận. Bạn có thể tìm hiểu thêm thông tin tại đây: https://help.github.com/enterprise/admin/guides/developer-workflow/using-pre-receive-hooks-to-enforce-policy/.

Tôi khá chắc chắn điều này sẽ hoàn toàn phù hợp với những thứ bạn đang tìm kiếm. Hy vọng rằng điều này sẽ giúp OP, hoặc bất cứ ai khác tình cờ sau này!

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