GitLab khá khét tiếng và là 1 mã mối cung cấp mở của dòng sản phẩm chủ Git được triển khai bởi rộng 50.000 tổ chức. Vào vài năm vừa mới đây Gitlad đang phát triển khỏe khoắn với sự cung cấp của xã hội mạng, mặt hàng nghìn người tiêu dùng trên một sever duy tốt nhất hoặc một số máy chủ chuyển động tương tự. Giả dụ bạn cần thiết lập một máy chủ Git, thì GitLab cung cấp cho mình một chiến thuật hoàn hảo.Gitlad là một hệ thống self-hosted để quản lý mã nguồn của bạn. Bản đầu tiên được phân phát hành hồi tháng 10/2011 và được cập nhật vào ngày 22 hàng tháng. Gitlab được thi công theo tiêu chuẩn của MIT.Gitlab được thành lập và hoạt động bởi Dmitriy Zaporozhets năm 2013. Dự án bao hàm hai nhóm chính: một mặt là “open source chip core team” với một bên là “GitLab B.V. Team” (chi nhánh của khách hàng Gitlab).

Bạn đang xem: Gitlab là gì

2. Đặc điểm của GitLab

GitLab cung ứng ba phiên bản:

Gitlab community editon (CE) - Gitlab phiên phiên bản cộng đồng: là phiên phiên bản mã mối cung cấp mở. Được cung cấp qua Git trường đoản cú kho lưu trữ chứa gitlab. Phiên bạn dạng mới độc nhất của gitlab được những nhà trở nên tân tiến release tại những nhánh stable với nhánh master.

Gitlab continuous intergration (CI): là một chiến thuật tích hòa hợp được triển khai bở nhóm phát triển Gitlab

Protected branches:

Gitlab cho phép đọc hoặc ghi vào repository và các branches.

Để cung cấp quyền cho những người được phép commit với pushing code, gitlad đã tạo thành protected branches.

Một protected branch gồm 3 điều cơ phiên bản sau:

Ngăn chặn bài toán push từ toàn bộ mọi người trừ user với master.

Ngăn chặn việc push code lên branch từ gần như người không có quyền truy vấn cập.

Ngăn chặn bất kỳ ai triển khai xóa branch.

Bạn có thể tạo bất kỳ branch xuất phát từ một protected branch. Gitlad khoác định master branch là protected branch.

Để bảo mật một branch, user cần có ít tốt nhất một quyền cho phép từ master branch.

Tầng đồ gia dụng lý của GitLab

Kho giữ trữ: xử lý những dự án trong Gitlab. Các sản phẩm lưu trữ (như dự án) rất có thể được lưu trữ tại warehouse. Nó hoàn toàn có thể là một đĩa cứng hoặc một cái gì đấy phức tạp rộng như hệ thống tập tin NFS.

Nginx hoạt động giống như front-desk. Người sử dụng đến Nginx cùng yêu cầu hành vi được thực hiện bởi worker vào văn phòng.

Cơ sở dữ liệu là 1 trong loạt các file của những metal tệp tin cabinets với những thông tin về:

Các sản phẩm trong warehouse (siêu dữ liệu, issuse, các yêu cầu merge ...).

Người sử dụng đến front-desk (permissions).

Redis: là phần giao tiếp một broad với cubby holes- dòng mà có thể chứa những nhiệm vụ, yêu cầu cho worker.

Sidekiq là 1 trong worker, các bước chủ yếu là xử lý việc gửi email. Nó nhận trọng trách từ Redis.

A Unicorn worker: là 1 trong những nhân viên xử lý các nhiệm vụ hối hả và dễ. Học thao tác làm việc với Redis. Quá trình của họ gồm:

Kiểm tra quyền truy hỏi cập bằng phương pháp kiểm tra các session của người tiêu dùng được lưu trữ trong Redis cubby hole.

Làm trách nhiệm cho Sidekiq.

Lấy pháp luật từ warehouse hoặc dịch rời mọi thứ bao quanh trong đó

Gitlab-shell: là các loại thứ cha của worker, trách nhiệm của nó là tạo những đơn đặt hàng từ một máy fax (SSH) thay vị front-desk (HTTP). Gitlab-shell giao tiếp với Sidekiq qua Redis cùng hỏi những câu hỏi nhanh của Unicorn worker hoặc trực tiếp hoặc qua front-desk.

Gitlab enterprise edition (ứng dụng) là tập hợp các quy trình và hoạt động kinh doanh được điểu hành vì chưng ofice (văn phòng).

System layout

Khi đề cập mang lại Git giữa những hình ảnh có tức thị thư mục home của người tiêu dùng Git hay là /home/git.

Repositories bare ở trong băng thông /home/git/repositories. Gitlab là 1 ứng dụng ruby on ralis vì vậy để thấu hiểu các chuyển động bên trong bạn có thể tìm hiểu bằng cách tìm đọc về hoạt động của ruby on ralis.

Để sử dụng kho tài liệu qua SSH gồm một vận dụng thêm vào được hotline là gitlab-sell chiếc mà được thiết lập tại /home/git/gitlab-shell.

Components

*

3. Mua đặt

Một sever để thiết lập GitLab:

+) Ubuntu >= 12.03 64-bit

+) Một CPU gồm một hoặc 2 nhân

+) RAM: 1GB hoặc 2GB

+) Cần kết nối internet

Các cách cài đặt:

Bước 1: install và configure the necessary dependencies

Sudo apt-get install openssh-server Sudo apt-get install postfixBước 2: download the omnibus package và install everything

Wget https://downloads-packages.s3.amazonaws.com/ubuntu-12.04/gitlab_7.9.2-omnibus-1_amd64.deb Sudo dpkg –i gitlab_7.9.2-omnibus-1_amd63.debBước 3: configure start gitlab

Sudo gitlab-ctl reconfigureBước 4: browse to the hostname and login

Username: root Password: 5iveL!fe

II. Managing Users, Groups and Permissions

Gitlab có căn nguyên trên tác động người dùng, nhưng bạn muốn có những điều khiển trên tất cả quyền các người dùng trên toàn bộ hệ thống. Vào phần này họ sẽ tìm hiểu về thống trị người dùng của gitlab, họ sẽ thấy sự không giống nhau giữa các kiểu người dùng mà bạn có thể thêm vào project, làm sao để làm chủ các nhóm mà bọn họ quản trị cùng làm cầm nào để bảo mật thông tin được dự án công trình của chúng ta từ phần lớn push sai với những góc nhìn tò dò khác.

1. Thêm một tín đồ dùng:

Khi nhóm trở nên tân tiến của bạn ngày càng lớn dần thì việc thêm các người dùng khác vào dự án là một việc cần thiết. Ở đây họ sẽ reviews việc giữ hộ một lời mời tới một người tiêu dùng khác nhằm tham gia vào dự án.

Khi thêm một fan dùng bọn họ thêm những thông tin cơ bản của người tiêu dùng mới vào, tuy nhiên họ cũng rất có thể thêm nhiều tin tức khác như hình ảnh của tín đồ dùng, thông tin tài khoản Skype, thông tin tài khoản Linkedln, tài khoản Twitter nếu như khách hàng muốn. Nhưng điều cần chăm chú đặc biệt chủ yếu là hình ảnh đại diện của người tiêu dùng mới. Nó sẽ được hiển thị từng lần người tiêu dùng có tác động với dự án. Ảnh đại diện sẽ được hiển thị ngay bên cạnh tên người dùng để làm các thành viên trong và một dự án hoàn toàn có thể nhìn thấy. Còn các thông tin khác sẽ được hiển thị trong trang hồ sơ của người dùng mới.

Ngoài ra chúng ta cũng có thể giới hạn số tín đồ dùng có thể tham gia vào dự án của bạn. Điều này là hữu ích nếu như khách hàng không ý muốn tất toàn bộ cơ thể dùng bao gồm một massive amount of private project. Mặc dù một người dùng thì không có giới hạn số dự án hoàn toàn có thể tham gia.Chúng ta sẽ vứt cờ Admin so với người dùng mới này. Điều này bảo đảm an toàn việc người dùng mới này không có quyền ngang với các bạn hay người tiêu dùng mới này không tồn tại quyền admin để có toàn quyền trong các công việc điều khiển so với GitLab của bạn.

Chúng ta ko thêm mật khẩu vào lúc đăng kí do mật khẩu sẽ được Gitlab sinh auto gửi kèm với email thư mời người dùng mới. Như vậy chúng ta cần thiết đề xuất đổi mật khẩu đăng nhập ngay khi chúng ta đăng nhập trước tiên tiên.

2. Tạo một đội mới

Trong phần này reviews việc chúng ta sẽ tạo một nhóm mới. Các nhóm có thể được sử dụng là không gian mà bạn có thể đặt dự án của người sử dụng vào đó. Bạn cũng có thể phân quyền mang đến các người tiêu dùng trong một nhóm. Khi bạn tạo một dự án mới trong một đội thì các người dùng trong nhóm sẽ auto được cung cấp quyền truy cập vào dự án.

Nhóm chính là một cách để gitlab giới thiệu không gian giữ trữ cho những dự án của bạn. Nếu dự án công trình của bạn có tương đối nhiều repositories, bạn có thể tạo riêng một tổ cho dự án công trình này. Tiếp đến thêm tất cả các repositories vào trong nhóm new tạo. Tác dụng của câu hỏi này là bạn không cần phải thêm các người tiêu dùng vào repositories mà người tiêu dùng trong một nhóm sẽ tự động được thêm vào toàn bộ các repositories.

Ngay sau khi bạn tạo một đội nhóm mới thì chúng ta sẽ auto được cấp cho quyền Owner. Cùng với những người tiêu dùng mới khi được cung ứng nhóm thì sẽ sở hữu được năm mức truy hỏi nhập vào nhóm là: Guest, Reporter, Master, Developer cùng Owner. Chỉ tất cả Master và Owner là tất cả thêm các quyền truy nhập vào nhóm.

Master có thể tạo các dự án trong một nhóm. Owner có sửa hoặc xoá một đội và làm chủ các người tiêu dùng trong nhóm.

3. Working with user permissions

Bạn rất có thể không ý muốn tất toàn bộ cơ thể dùng trong hệ thống của người sử dụng đều được cấp cho quyền là một người quản trị hay chúng ta có một dự án mà bạn chỉ muốn người tiêu dùng chỉ hoàn toàn có thể tạo ra các issue chứ không có tác dụng commit code. Trong một trong những trường vừa lòng này bạn phải sử dụng tới model phân quyền của gitlab.

Trong Gitlab chúng ta có thể bạn tất cả thể đảm bảo an toàn dự án của bạn bằng cách dùng user permissions. Gồm 5 mức quyền không giống nhau là Guest, Reporter, Developer, Master và Owner. Owner là nút phân quyền cao nhất mà bạn không thể cung cấp cho ngẫu nhiên một người tiêu dùng nào khác. Người tiêu dùng tạo ra dự án này thì tự động được cấp cho quyền này.

Các chuyển động mà mỗi mức quyền được phép tiến hành của 5 nấc là:

| |Guest | Reporter |Developer | Master|Owner ||---|---|---|---|---|| sinh sản một issue | * | * | * | * |*| Để lại ocmment | * | * | * | * |*| Pull code của dự án | | * | * | * |*| Tải dự án công trình | | * | * | * |*| sinh sản một code snippets | | * | * | * |*| chế tác một merge request | | | * | * |*| Push biến đổi vào một nhánh không được bảo vệ | | | * | * |*Xoá một nhánh không được bảo đảm an toàn | | | * | * |*| Thêm Tags | | | * | * |*| Viết Wiki| | | * | * |*| làm chủ issue tracker | | | * | * |*| Thêm một đội người dung new | | | | * |*| Push chuyển đổi vào nhánh được đảm bảo an toàn | | | | * |*| thống trị nhánh được đảm bảo | | | | * |*| cai quản Git tags | | | | * |*|Sửa chữa dự án | | | | * |*|Thêm deploy key vào dự án công trình | | | | * |*| cấu hình dự án| | | | * |*

4. Protecting your main branches

Bạn rất có thể muốn đảm bảo an toàn nhánh đặc biệt quan trọng nhất của công ty tránh các việc push sự đổi khác không ước muốn ở nhánh này, hay phần nhiều push sự đổi khác trực tiếp vào nhánh này mà không có sự thông tin bởi các người dùng khác

Bảo vệ một nhánh có thể thực hiện nay trong Gitlab bằng việc đánh dấu nhánh ấy là Protected điều này tức là với những người tiêu dùng được cung cấp quyền developer cùng thấp rộng quyền này không hoàn toàn có thể thực hiện được việc điều phối push sự chuyển đổi vào thẳng nhánh này. Như vậy thì nếu người tiêu dùng muốn push sự thay đổi vào nhánh này thì cần được tạo những merge request để hoàn toàn có thể push sự chuyển đổi vào những branch này.

Một số nhánh bạn cần nên tuân theo điều này là các nhánh Master, Acceptance và Production. Các bạn không muốn người dùng commit trên các nhánh này tuyệt push các chuyển đổi vào thẳng các nhánh này. Một điều thú vị cho bài toán này chính là bạn cũng có thể bảo vệ được những nhánh này né khỏi các tai nạn rủi ro như việc xoá mất một branch.

5. Configuring the project’s visibility

Gitlab có thể chấp nhận được bạn có tía kiểu project: Private, Internal, và Public

Khi các bạn có một dự án Public thì mọi tín đồ đều rất có thể xem dự án công trình dù họ không có tài khoản trên khối hệ thống của bạn. Mọi bạn không cần có tài khoản trên khối hệ thống vẫn hoàn toàn có thể pull code về. Bạn dùng tài năng khoản bên trên hệ thống của bạn mặc cho dù không được chấp nhận truy cập tuy vậy vẫn rất có thể tạo được các merge request hoặc mở một issue.

Như đang biết thì Gitlab hỗ trợ 3 kiểu project và mặc định của chính nó là Private. Các dự án Private là những dự án công trình mà chỉ hiển thị với các người dung đang được chế tạo dự án.The amount of options an invited person in your project has depends on the permissions you grant them.

Xem thêm: Fab Là Gì ? Viết Tắt Của Từ Gì? Fab Nghĩa Là Gì

Nếu bạn có một dự án công trình mà tất cả thể được cho phép tất cả các người dùng có có tài năng khoản trong khối hệ thống Gitlab của chúng ta thì chúng ta cũng có thể để Internal. Một vài người dùng đã đăng nhập sẽ tiến hành phân quyền Guest

Kiểu cuối cùng chính là Public. Một dự án công trình Public có thể được coppy từ bởi bất kể một người dùng nào khác mà lại không cần có các xác thực.