Mô hình Pull Request của GitHub có thể được sử dụng để triển khai phê duyệt bài không?


7

Câu trả lời được chấp nhận cho " Những triển khai có thể (hoặc ví dụ) của nguyên tắc bốn mắt là gì? " Cho thấy mô hình Yêu cầu Kéo của GitHub là một triển khai có thể.

Và câu trả lời của riêng tôi về " Làm thế nào để thực hiện nguyên tắc bốn mắt cho các sửa chữa khẩn cấp? " Giải thích khái niệm về phê duyệt sau .

Câu hỏi của tôi : Mô hình Yêu cầu Kéo của GitHub có thể được sử dụng để triển khai phê duyệt bài không? Nếu vậy: làm thế nào? Nếu không, có gì khác trong Git (GitHub?) Mà tôi có thể sử dụng cho nó không?


Liệu mô tả về quá trình đóng góp của đầu bếp có ý nghĩa? trích dẫn nó bằng một liên kết sẽ là đạo văn, và tôi không nghĩ rằng tôi sẽ thêm bất cứ điều gì vào đầu.
Tensibai

Bonjoiur @Tensibai ... Tôi không hiểu làm thế nào quá trình đó có thể được sử dụng / xem xét cho các phê duyệt bài đăng đó (phải là tôi, người không hiểu nó). Vì vậy, có lẽ bạn nên thêm một câu trả lời (có tham chiếu đến liên kết đó) và thêm một lời giải thích tại sao bạn nghĩ rằng quá trình đó trả lời câu hỏi của tôi?
Pierre.Vriens

Tôi cho rằng tôi sẽ lặp lại một loạt những gì Richard đã nói. Điểm chính là các nhà bảo trì có quyền hợp nhất trong tổng thể, vì vậy họ có thể theo cùng một sơ đồ, phê duyệt công việc của chính họ và vẫn có thể xem xét lại sau này.
Tensibai

Câu trả lời:


3

Vâng, tôi tin như vậy. Để giải thích rằng tôi cần đặt một số nền tảng về cách tôi đã thực hiện một cái gì đó tương tự, tôi đã đơn giản hóa mô hình trong một nỗ lực để làm cho nó rõ ràng nhất có thể.

Giả định

Tôi đang đưa ra giả định ở đây rằng Jenkins, TeamCity hoặc tương tự đang được sử dụng làm công cụ CI / CD được lựa chọn. Ngoài ra, GitHub đang được sử dụng và có cấu trúc phân nhánh được xác định rõ ràng và được kiểm soát phù hợp :

Sơ đồ phân nhánh

Cấu hình

Trong ví dụ này, GitHub được cấu hình như sau:

  • Chi nhánh 'Master' Đen chỉ có thể được hợp nhất vào bằng cách sử dụng Yêu cầu kéo , các cam kết trực tiếp không được phép.
  • Chi nhánh 'Phát triển' của Blue có thể chấp nhận các cam kết hoặc sáp nhập trực tiếp; trong thực tế, có thể có những hạn chế bổ sung đối với chi nhánh này.
  • Chi nhánh 'Hotfix' màu đỏ có thể chấp nhận các cam kết và sáp nhập trực tiếp.
  • Kiểm tra trạng thái bắt buộc được bật trong chế độ nghiêm ngặt để ngăn việc hợp nhất các yêu cầu kéo khi chi nhánh không xây dựng được.
  • Nếu nhánh Hotfix đi trước Master thì kéo các yêu cầu vào Master sẽ bị chặn, với API trạng thái hoặc Móc nhận trước trên GitHub Enterprise .

Các công cụ CI / CD được cấu hình như sau:

  • Các bản dựng từ nhánh Phát triển không thể được triển khai vào sản xuất.
  • Bản dựng từ Master có thể được triển khai cho tất cả các môi trường.
  • Bản dựng từ Hotfix có thể được triển khai cho tất cả các môi trường.
  • Triển khai từ Hotfix sẽ thông báo cho một số chức năng không phát triển, ví dụ: nhóm Thay đổi / Phát hành và yêu cầu họ thực hiện phê duyệt sau .

Ghi chú

Master được bảo vệ vì nó đại diện cho tình trạng sản xuất hiện tại, để thực hiện điều này trên thực tế, bạn có thể có một nhánh "Phát hành" khác mà việc triển khai được thực hiện từ và chỉ khi hợp nhất thành công vào nhánh Master.

Những điểm chính

Chi nhánh phát triển màu xanh về cơ bản là miễn phí cho tất cả. Hotfix là một loại miễn phí nhưng mọi triển khai đều kích hoạt một loại Break Glass bằng cách thông báo cho một chức năng không phát triển, người sẽ thực hiện phê duyệt sau và trong quá trình sẽ hợp nhất thay đổi thành Master.

Đó là sự hợp nhất thiết yếu vào Master stop trong khi Hotfix đi trước Master để:

  1. Ngăn chặn việc triển khai từ Master ghi đè Hotfix, điều này có thể dẫn đến hồi quy.
  2. Ngăn chặn một Hotfix ngồi trong nhánh Hotfix mòn mỏi mà không được hợp nhất.

Trong một số tổ chức, điều này có thể giúp ngăn chặn tất cả các lần đẩy vào kho lưu trữ GitHub trung tâm trong khi Hotfix đang chờ phê duyệt sau.


Richard tốt bụng, Merci! Tôi sẽ tiêu hóa một vài trong số những điều bạn đã viết trong anwer của mình và có thể thêm một số nhận xét bổ sung sau để làm rõ / hoàn thành một vài điều bạn đã viết. Trường hợp thích hợp tôi cũng có thể thêm (các) câu hỏi tiếp theo. Có quen thuộc với một cái gì đó như "câu trả lời cho một câu hỏi kích hoạt 10 câu hỏi mới ..."?
Pierre.Vriens

@ Pierre.Vriens xin hỏi nhiều câu hỏi, tôi đã trích xuất một cách hiệu quả những điều trên từ việc triển khai GitHub EnterpriseJenkins của khách hàng và hoàn toàn từ bộ nhớ - có thể tôi đã bỏ lỡ điều gì đó, tôi đã mất 4 giờ để viết nó như tôi đã kiểm tra rất cẩn thận Đối với "câu trả lời cho một câu hỏi kích hoạt 10 câu hỏi mới", nó rất phổ biến trong tư vấn.
Richard Slater

Bạn đã bao giờ có cơ hội để đưa các câu hỏi xuống "giấy" chưa? Rất vui được nói chuyện qua nó trong trò chuyện nếu bạn thích.
Richard Slater
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.