summaryrefslogtreecommitdiff
path: root/doc/public_access/public_access.md
blob: 6e22ea7b72af8780ea6fba1fdb5a46213f8c584a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Public access

GitLab allows you to change your projects' visibility in order be accessed
**publicly** or **internally**.

Projects with either of these visibility levels will be listed in the
public access directory (`/public` under your GitLab instance).
Here is the [GitLab.com example](https://gitlab.com/public).

Internal projects will only be available to authenticated users.

## Visibility of projects

### Public projects

Public projects can be cloned **without any** authentication.

They will also be listed on the public access directory (`/public`).

**Any logged in user** will have [Guest](../permissions/permissions)
permissions on the repository.

### Internal projects

Internal projects can be cloned by any logged in user.

They will also be listed on the public access directory (`/public`) for logged
in users.

Any logged in user will have [Guest](../permissions/permissions) permissions on
the repository.

### How to change project visibility

1. Go to your project's **Settings**
1. Change "Visibility Level" to either Public, Internal or Private

## Visibility of users

The public page of a user, located at `/u/username`, is always visible whether
you are logged in or not.

When visiting the public page of a user, you can only see the projects which
you are privileged to.

## Visibility of groups

The public page of a group, located at `/groups/groupname`, is always visible
to everyone.

Logged out users will be able to see the description and the avatar of the
group as well as all public projects belonging to that group.

## Restricting the use of public or internal projects

In the Admin area under **Settings** (`/admin/application_settings`), you can
restrict the use of visibility levels for users when they create a project or a
snippet. This is useful to prevent people exposing their repositories to public
by accident. The restricted visibility settings do not apply to admin users.