summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG1
-rw-r--r--app/services/git_push_service.rb2
-rw-r--r--spec/services/git_push_service_spec.rb2
3 files changed, 5 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 2e02d5ad20d..a60c21929a5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,7 @@ v 7.4.0
- Fix creating new files with web editor
- Improve error reporting on users API (Julien Bianchi)
- Refactor test coverage tools usage. Use SIMPLECOV=true to generate it locally
+ - Default branch is protected by default
- Increase unicorn timeout to 60 seconds
- Sort search autocomplete projects by stars count so most popular go first
- Do not delete tmp/repositories itself during clean-up, only its contents
diff --git a/app/services/git_push_service.rb b/app/services/git_push_service.rb
index fddfddb92ee..17c84c78d2d 100644
--- a/app/services/git_push_service.rb
+++ b/app/services/git_push_service.rb
@@ -29,6 +29,8 @@ class GitPushService
if is_default_branch?(ref)
# Initial push to the default branch. Take the full history of that branch as "newly pushed".
@push_commits = project.repository.commits(newrev)
+ # Default branch is protected by default
+ project.protected_branches.create({ name: project.default_branch })
else
# Use the pushed commits that aren't reachable by the default branch
# as a heuristic. This may include more commits than are actually pushed, but
diff --git a/spec/services/git_push_service_spec.rb b/spec/services/git_push_service_spec.rb
index 9afa4953d61..4ef053a767f 100644
--- a/spec/services/git_push_service_spec.rb
+++ b/spec/services/git_push_service_spec.rb
@@ -105,6 +105,8 @@ describe GitPushService do
context "execute web hooks" do
it "when pushing a branch for the first time" do
project.should_receive(:execute_hooks)
+ project.default_branch.should == "master"
+ project.protected_branches.should_receive(:create).with({ name: "master" })
service.execute(project, user, @blankrev, 'newrev', 'refs/heads/master')
end