visibility_and_access_controls.md 6.4 KB
Newer Older
1 2 3 4
---
type: reference
---

5
# Visibility and access controls **(CORE ONLY)**
6

7
GitLab allows administrators to enforce specific controls.
8 9 10 11 12 13 14

To access the visibility and access control options:

1. Log in to GitLab as an admin.
1. Go to **Admin Area > Settings > General**.
1. Expand the **Visibility and access controls** section.

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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
## Default branch protection

Branch protection specifies which roles can push to branches and which roles can delete
branches.

To change the default branch protection:

1. Select the desired option.
1. Click **Save changes**.

For more details, see [Protected branches](../../project/protected_branches.md).

## Default project creation protection

Project creation protection specifies which roles can create projects.

To change the default project creation protection:

1. Select the desired option.
1. Click **Save changes**.

For more details, see [Default project-creation level](../../group/index.md#default-project-creation-level).

## Default project deletion protection

By default, a project can be deleted by anyone with the **Owner** role, either at the project or
group level.

To ensure only admin users can delete projects:

1. Check the **Default project deletion protection** checkbox.
1. Click **Save changes**.

## Default project visibility

To set the default visibility levels for new projects:

1. Select the desired default project visibility.
1. Click **Save changes**.

For more details on project visibility, see [Public access](../../../public_access/public_access.md).

## Default snippet visibility

To set the default visibility levels for new snippets:

1. Select the desired default snippet visibility.
1. Click **Save changes**.

For more details on snippet visibility, see [Public access](../../../public_access/public_access.md).

## Default group visibility

To set the default visibility levels for new groups:

1. Select the desired default group visibility.
1. Click **Save changes**.

For more details on group visibility, see [Public access](../../../public_access/public_access.md).

## Restricted visibility levels

To set the available visibility levels for new projects and snippets:

1. Check the desired visibility levels.
1. Click **Save changes**.

For more details on project visibility, see [Public access](../../../public_access/public_access.md).

84 85
## Import sources

86 87 88 89
To specify from which hosting sites users can [import their projects](../../project/import/index.md):

1. Check the checkbox beside the name of each hosting site.
1. Click **Save changes**.
90

91 92 93 94 95 96 97 98
## Project export

To enable project export:

1. Check the **Project export enabled** checkbox.
1. Click **Save changes**.

For more details, see [Exporting a project and its data](../../../user/project/settings/import_export.md#exporting-a-project-and-its-data).
99

100 101
## Enabled Git access protocols

102
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4696) in GitLab 8.10.
103

104 105
With GitLab's access restrictions, you can select with which protocols users can communicate with
GitLab.
106

107
Disabling an access protocol does not block access to the server itself via those ports. The ports
108
used for the protocol, SSH or HTTP(S), will still be accessible. The GitLab restrictions apply at the
109
application level.
110

111
To specify the enabled Git access protocols:
112

113 114 115 116 117
1. Select the desired Git access protocols from the dropdown:
   - Both SSH and HTTP(S)
   - Only SSH
   - Only HTTP(S)
1. Click **Save changes**.
118

119
When both SSH and HTTP(S) are enabled, users can choose either protocol.
120

121
When only one protocol is enabled:
122 123 124 125 126 127

- The project page will only show the allowed protocol's URL, with no option to
  change it.
- A tooltip will be shown when you hover over the URL's protocol, if an action
  on the user's part is required, e.g. adding an SSH key, or setting a password.

128
![Project URL with SSH only access](img/restricted_url.png)
129 130 131 132

On top of these UI restrictions, GitLab will deny all Git actions on the protocol
not selected.

T
Tomasz Maczukin 已提交
133
CAUTION: **Important:**
134 135 136
Starting with [GitLab 10.7](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18021),
HTTP(S) protocol will be allowed for Git clone or fetch requests done by GitLab Runner
from CI/CD jobs, even if _Only SSH_ was selected.
T
Tomasz Maczukin 已提交
137

138 139
## Custom Git clone URL for HTTP(S)

140 141
> [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/18422) in GitLab 12.4.

142 143 144
You can customize project Git clone URLs for HTTP(S). This will affect the clone
panel:

145 146 147
![Clone panel](img/clone_panel_v12_4.png)

For example, if:
148

149 150 151 152
- Your GitLab instance is at `https://example.com`, then project clone URLs are like
  `https://example.com/foo/bar.git`.
- You want clone URLs that look like `https://git.example.com/gitlab/foo/bar.git` instead,
  you can set this setting to `https://git.example.com/gitlab/`.
153

154
![Custom Git clone URL for HTTP](img/custom_git_clone_url_for_https_v12_4.png)
155 156 157 158 159 160 161

To specify a custom Git clone URL for HTTP(S):

1. Enter a root URL for **Custom Git clone URL for HTTP(S)**.
1. Click on **Save changes**.

NOTE: **Note:**
162 163
SSH clone URLs can be customized in `gitlab.rb` by setting `gitlab_rails['gitlab_ssh_host']` and
other related settings.
164

165 166 167 168 169 170 171 172 173 174
## RSA, DSA, ECDSA, ED25519 SSH keys

These options specify the permitted types and lengths for SSH keys.

To specify a restriction for each key type:

1. Select the desired option from the dropdown.
1. Click **Save changes**.

For more details, see [SSH key restrictions](../../../security/ssh_keys_restrictions.md).
175

176 177
## Allow mirrors to be set up for projects

178
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3586) in GitLab 10.3.
179

180
This option is enabled by default. By disabling it, both [pull and push mirroring](../../../workflow/repository_mirroring.md) will no longer
181
work in every repository and can only be re-enabled by an admin on a per-project basis.
182 183 184

![Mirror settings](img/mirror_settings.png)

185 186 187 188 189 190 191 192 193 194 195
<!-- ## Troubleshooting

Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.

Each scenario can be a third-level heading, e.g. `### Getting error message X`.
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->