Skip to content

Commit 1bd697e

Browse files
authored
Merge pull request #1504 from HonkingGoose/update-gitlab-section
2 parents 8d2878d + e3ad770 commit 1bd697e

File tree

2 files changed

+29
-31
lines changed

2 files changed

+29
-31
lines changed

book/04-git-server/sections/gitlab.asc

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,58 @@
22

33
(((serving repositories, GitLab)))(((GitLab)))
44
GitWeb is pretty simplistic though.
5-
If you're looking for a more modern, fully featured Git server, there are some several open source solutions out there that you can install instead.
6-
As GitLab is one of the more popular ones, we'll cover installing and using it as an example.
7-
This is a bit more complex than the GitWeb option and likely requires more maintenance, but it is a much more fully featured option.
5+
If you're looking for a modern, fully featured Git server, there are several open source solutions out there that you can install instead.
6+
As GitLab is one of the popular ones, we'll cover installing and using it as an example.
7+
This is harder than the GitWeb option and will require more maintenance, but it is a fully featured option.
88

99
==== Installation
1010

11-
GitLab is a database-backed web application, so its installation is a bit more involved than some other Git servers.
12-
Fortunately, this process is very well-documented and supported.
11+
GitLab is a database-backed web application, so its installation is more involved than some other Git servers.
12+
Fortunately, this process is well-documented and supported.
13+
GitLab strongly recommends installing GitLab on your server via the official Omnibus GitLab package.
1314

14-
There are a few methods you can pursue to install GitLab.
15-
To get something up and running quickly, you can download a virtual machine image or a one-click installer from https://bitnami.com/stack/gitlab[], and tweak the configuration to match your particular environment.(((bitnami)))
16-
One nice touch Bitnami has included is the login screen (accessed by typing alt+→); it tells you the IP address and default username and password for the installed GitLab.
15+
The other installation options are:
1716

18-
[[bitnami]]
19-
.The Bitnami GitLab virtual machine login screen
20-
image::images/bitnami.png[The Bitnami GitLab virtual machine login screen]
17+
* GitLab Helm chart, for use with Kubernetes.
18+
* Dockerized GitLab packages for use with Docker.
19+
* From the source files.
20+
* Cloud provider such as AWS, Google Cloud Platform, Azure, OpenShift and Digital Ocean.
2121

22-
For anything else, follow the guidance in the GitLab Community Edition readme, which can be found at https://gitlab.com/gitlab-org/gitlab-ce/tree/master[].
23-
There you'll find assistance for installing GitLab using Chef recipes, a virtual machine on Digital Ocean, and RPM and DEB packages (which, as of this writing, are in beta).
24-
There's also ``unofficial'' guidance on getting GitLab running with non-standard operating systems and databases, a fully-manual installation script, and many other topics.
22+
For more information read the https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md[GitLab Community Edition (CE) readme].
2523

2624
==== Administration
2725

2826
GitLab's administration interface is accessed over the web.
29-
Simply point your browser to the hostname or IP address where GitLab is installed, and log in as an admin user.
30-
The default username is `[email protected]`, and the default password is `5iveL!fe` (which you will be prompted to change as soon as you enter it).
31-
Once logged in, click the ``Admin area'' icon in the menu at the top right.
27+
Simply point your browser to the hostname or IP address where GitLab is installed, and log in as the admin user.
28+
The default username is `[email protected]`, and the default password is `5iveL!fe` (which you must change right away).
29+
After you've logged in, click the ``Admin area'' icon in the menu at the top right.
3230

3331
[[gitlab_menu]]
3432
.The ``Admin area'' item in the GitLab menu
3533
image::images/gitlab-menu.png[The ``Admin area'' item in the GitLab menu]
3634

3735
===== Users
3836

39-
Users in GitLab are accounts that correspond to people.
40-
User accounts don't have a lot of complexity; mainly it's a collection of personal information attached to login data.
41-
Each user account comes with a *namespace*, which is a logical grouping of projects that belong to that user.
37+
Everybody using your GitLab server must have an user account.
38+
User accounts are quite simple, they mainly contain personal information attached to login data.
39+
Each user account has a *namespace*, which is a logical grouping of projects that belong to that user.
4240
If the user +jane+ had a project named +project+, that project's url would be `http://server/jane/project`.
4341

4442
[[gitlab_users]]
4543
.The GitLab user administration screen
4644
image::images/gitlab-users.png[The GitLab user administration screen]
4745

48-
Removing a user can be done in two ways.
46+
You can remove a user account in two ways:
4947
``Blocking'' a user prevents them from logging into the GitLab instance, but all of the data under that user's namespace will be preserved, and commits signed with that user's email address will still link back to their profile.
5048

5149
``Destroying'' a user, on the other hand, completely removes them from the database and filesystem.
5250
All projects and data in their namespace is removed, and any groups they own will also be removed.
53-
This is obviously a much more permanent and destructive action, and its uses are rare.
51+
This is obviously a much more permanent and destructive action, and you will rarely need it.
5452

5553
[[_gitlab_groups_section]]
5654
===== Groups
5755

58-
A GitLab group is an assemblage of projects, along with data about how users can access those projects.
56+
A GitLab group is a collection of projects, along with data about how users can access those projects.
5957
Each group has a project namespace (the same way that users do), so if the group +training+ has a project +materials+, its url would be `http://server/training/materials`.
6058

6159
[[gitlab_groups]]
@@ -70,9 +68,9 @@ The types of permissions are too numerous to list here, but GitLab has a helpful
7068

7169
A GitLab project roughly corresponds to a single Git repository.
7270
Every project belongs to a single namespace, either a user or a group.
73-
If the project belongs to a user, the owner of the project has direct control over who has access to the project; if the project belongs to a group, the group's user-level permissions will also take effect.
71+
If the project belongs to a user, the owner of the project has direct control over who has access to the project; if the project belongs to a group, the group's user-level permissions will take effect.
7472

75-
Every project also has a visibility level, which controls who has read access to that project's pages and repository.
73+
Every project has a visibility level, which controls who has read access to that project's pages and repository.
7674
If a project is _Private_, the project's owner must explicitly grant access to specific users.
7775
An _Internal_ project is visible to any logged-in user, and a _Public_ project is visible to anyone.
7876
Note that this controls both `git fetch` access as well as access to the web UI for that project.
@@ -86,9 +84,9 @@ This is a great way to connect your Git repositories and GitLab instance to the
8684
==== Basic Usage
8785

8886
The first thing you'll want to do with GitLab is create a new project.
89-
This is accomplished by clicking the ``+'' icon on the toolbar.
87+
You can do this by clicking on the ``+'' icon on the toolbar.
9088
You'll be asked for the project's name, which namespace it should belong to, and what its visibility level should be.
91-
Most of what you specify here isn't permanent, and can be re-adjusted later through the settings interface.
89+
Most of what you specify here isn't permanent, and can be changed later through the settings interface.
9290
Click ``Create Project'', and you're done.
9391

9492
Once the project exists, you'll probably want to connect it with a local Git repository.
@@ -113,19 +111,19 @@ Each project's home page shows recent activity, and links along the top will lea
113111

114112
==== Working Together
115113

116-
The simplest way of working together on a GitLab project is by giving another user direct push access to the Git repository.
114+
The simplest way of working together on a GitLab project is by giving each user direct push access to the Git repository.
117115
You can add a user to a project by going to the ``Members'' section of that project's settings, and associating the new user with an access level (the different access levels are discussed a bit in <<_gitlab_groups_section>>).
118-
By giving a user an access level of ``Developer'' or above, that user can push commits and branches directly to the repository with impunity.
116+
By giving a user an access level of ``Developer'' or above, that user can push commits and branches directly to the repository.
119117

120118
Another, more decoupled way of collaboration is by using merge requests.
121119
This feature enables any user that can see a project to contribute to it in a controlled way.
122120
Users with direct access can simply create a branch, push commits to it, and open a merge request from their branch back into `master` or any other branch.
123-
Users who don't have push permissions for a repository can ``fork'' it (create their own copy), push commits to _that_ copy, and open a merge request from their fork back to the main project.
121+
Users who don't have push permissions for a repository can ``fork'' it to create their own copy, push commits to _their_ copy, and open a merge request from their fork back to the main project.
124122
This model allows the owner to be in full control of what goes into the repository and when, while allowing contributions from untrusted users.
125123

126124
Merge requests and issues are the main units of long-lived discussion in GitLab.
127125
Each merge request allows a line-by-line discussion of the proposed change (which supports a lightweight kind of code review), as well as a general overall discussion thread.
128126
Both can be assigned to users, or organized into milestones.
129127

130128
This section is focused mainly on the Git-related features of GitLab, but as a mature project, it provides many other features to help your team work together, such as project wikis and system maintenance tools.
131-
One benefit to GitLab is that, once the server is set up and running, you'll rarely need to tweak a configuration file or access the server via SSH; most administration and general usage can be accomplished through the in-browser interface.
129+
One benefit to GitLab is that, once the server is set up and running, you'll rarely need to tweak a configuration file or access the server via SSH; most administration and general usage can be done through the in-browser interface.

images/bitnami.png

-3.04 KB
Binary file not shown.

0 commit comments

Comments
 (0)