Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
gitlab-ce
Commits
f83c5d24
Commit
f83c5d24
authored
Aug 21, 2016
by
Achilleas Pipinellis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Document the new behavior of protected branches
parent
12fe6a6f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
35 deletions
+43
-35
doc/user/project/img/protected_branches_devs_can_push.png
doc/user/project/img/protected_branches_devs_can_push.png
+0
-0
doc/user/project/img/protected_branches_list.png
doc/user/project/img/protected_branches_list.png
+0
-0
doc/user/project/img/protected_branches_page.png
doc/user/project/img/protected_branches_page.png
+0
-0
doc/user/project/protected_branches.md
doc/user/project/protected_branches.md
+43
-35
No files found.
doc/user/project/img/protected_branches_devs_can_push.png
View replaced file @
12fe6a6f
View file @
f83c5d24
23.4 KB
|
W:
|
H:
18.9 KB
|
W:
|
H:
2-up
Swipe
Onion skin
doc/user/project/img/protected_branches_list.png
View replaced file @
12fe6a6f
View file @
f83c5d24
16.4 KB
|
W:
|
H:
15.8 KB
|
W:
|
H:
2-up
Swipe
Onion skin
doc/user/project/img/protected_branches_page.png
0 → 100644
View file @
f83c5d24
17.4 KB
doc/user/project/protected_branches.md
View file @
f83c5d24
...
@@ -5,6 +5,8 @@ idea of having read or write permission to the repository and branches. To
...
@@ -5,6 +5,8 @@ idea of having read or write permission to the repository and branches. To
prevent people from messing with history or pushing code without review, we've
prevent people from messing with history or pushing code without review, we've
created protected branches.
created protected branches.
## Overview
By default, a protected branch does four simple things:
By default, a protected branch does four simple things:
-
it prevents its creation, if not already created, from everybody except users
-
it prevents its creation, if not already created, from everybody except users
...
@@ -15,6 +17,11 @@ By default, a protected branch does four simple things:
...
@@ -15,6 +17,11 @@ By default, a protected branch does four simple things:
See the
[
Changelog
](
#changelog
)
section for changes over time.
See the
[
Changelog
](
#changelog
)
section for changes over time.
>
>Added benefits for GitLab Enterprise Edition:
>
>- Restrict push and merge access to [certain users][ee-restrict]
## Configuring protected branches
## Configuring protected branches
To protect a branch, you need to have at least Master permission level. Note
To protect a branch, you need to have at least Master permission level. Note
...
@@ -28,26 +35,45 @@ that the `master` branch is protected by default.
...
@@ -28,26 +35,45 @@ that the `master` branch is protected by default.
1.
From the
**Branch**
dropdown menu, select the branch you want to protect and
1.
From the
**Branch**
dropdown menu, select the branch you want to protect and
click
**Protect**
. In the screenshot below, we chose the
`develop`
branch.
click
**Protect**
. In the screenshot below, we chose the
`develop`
branch.
![
Choose protected branch](img/protected_branches_choose_branch
.png)
![
Protected branches page](img/protected_branches_page
.png)
1.
Once done, the protected branch will appear in the "
Already protected
" list.
1.
Once done, the protected branch will appear in the "
Protected branches
" list.
![Protected branches list](img/protected_branches_list.png)
![Protected branches list](img/protected_branches_list.png)
## Using the Allowed to merge and Allowed to push settings
> This feature was [introduced][ce-5081] in GitLab 8.11.
Since GitLab 8.11, we added another layer of branch protection which provides
more granular management of protected branches. The "Developers can push"
option was replaced by an "Allowed to push" setting which can be set to
allow/prohibit Masters and/or Developers to push to a protected branch.
Using the "Allowed to push" and "Allowed to merge" settings, you can control
the actions that different roles can perform with the protected branch.
For example, you could set "Allowed to push" to "No one", and "Allowed to merge"
to "Developers + Masters", to require _everyone_ to submit a merge request for
changes going into the protected branch. This is compatible with workflows like
the
[
GitLab workflow
](
../../workflow/gitlab_flow.md
)
.
However, there are workflows where that is not needed, and only protecting from
force pushes and branch removal is useful. For those workflows, you can allow
everyone with write access to push to a protected branch by setting
"Allowed to push" to "Developers + Masters".
You can set the "Allowed to push" and "Allowed to merge" options while creating
a protected branch or afterwards by selecting the option you want from the
dropdown list in the "Already protected" area.
Since GitLab 8.10, we added another layer of branch protection which provides
![
Developers can push
](
img/protected_branches_devs_can_push.png
)
more granular management of protected branches. You can now choose the option
"Developers can merge" so that Developer users can merge a merge request but
not directly push. In that case, your branches are protected from direct pushes,
yet Developers don't need elevated permissions or wait for someone with a higher
permission level to press merge.
You can set this option while creating the protected branch or after its
If you don't choose any of those options while creating a protected branch,
creation
.
they are set to "Masters" by default
.
## Wildcard protected branches
## Wildcard protected branches
>
[I
ntroduced][ce-4665] in GitLab 8.10.
>
This feature was [i
ntroduced][ce-4665] in GitLab 8.10.
You can specify a wildcard protected branch, which will protect all branches
You can specify a wildcard protected branch, which will protect all branches
matching the wildcard. For example:
matching the wildcard. For example:
...
@@ -66,40 +92,22 @@ Two different wildcards can potentially match the same branch. For example,
...
@@ -66,40 +92,22 @@ Two different wildcards can potentially match the same branch. For example,
In that case, if _any_ of these protected branches have a setting like
In that case, if _any_ of these protected branches have a setting like
"Allowed to push", then
`production-stable`
will also inherit this setting.
"Allowed to push", then
`production-stable`
will also inherit this setting.
If you click on a protected branch's name
that is created using a wildcard,
If you click on a protected branch's name
, you will be presented with a list of
you will be presented with a list of
all matching branches:
all matching branches:
![
Protected branch matches
](
img/protected_branches_matches.png
)
![
Protected branch matches
](
img/protected_branches_matches.png
)
## Restrict the creation of protected branches
## Restrict the creation of protected branches
Creating a protected branch or a list of protected branches using the wildcard
feature, not only you are restricting pushes to those branches, but also their
creation if not already created.
## Error messages when pushing to a protected branch
A user with insufficient permissions will be presented with an error when
creating or pushing to a branch that's prohibited, either through GitLab's UI:
![
Protected branch error GitLab UI
](
img/protected_branches_error_ui.png
)
or using Git from their terminal:
```
bash
remote: GitLab: You are not allowed to push code to protected branches on this project.
To https://gitlab.example.com/thedude/bowling.git
!
[
remote rejected] staging-stable -> staging-stable
(
pre-receive hook declined
)
error: failed to push some refs to
'https://gitlab.example.com/thedude/bowling.git'
```
## Changelog
## Changelog
**8.10
.0
**
**8.10**
-
Allow specifying protected branches using wildcards
[
gitlab-org/gitlab-ce!5081
][
ce-4665
]
-
Allow specifying protected branches using wildcards
[
gitlab-org/gitlab-ce!5081
][
ce-5081
]
-
Allow creating protected branches that can't be pushed to
[
gitlab-org/gitlab-ce!5081
][
ce-4665
]
---
---
[
ce-4665
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4665
"Allow specifying protected branches using wildcards"
[
ce-4665
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4665
"Allow specifying protected branches using wildcards"
[
ce-5081
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5081
"Allow creating protected branches that can't be pushed to"
[
ce-5081
]:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5081
"Allow creating protected branches that can't be pushed to"
[
ee-restrict
]:
http://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment