diff options
author | Rémy Coutable <remy@rymai.me> | 2017-07-04 11:26:15 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-07-04 11:26:15 +0000 |
commit | f7e7e40daf335570747b6f8893a63f1e9c91657a (patch) | |
tree | b303136ba22c9b539d2f8437b7bf09a4aa03f21d | |
parent | 75ac425c94d1763088040ff526b590f5ffe03f85 (diff) | |
parent | e0f106ae97334d622c6eb7580e72e17181fddd6e (diff) | |
download | gitlab-ce-f7e7e40daf335570747b6f8893a63f1e9c91657a.tar.gz |
Merge branch 'tc-no-delete-protected-merged-branches' into 'master'
DeleteMergedBranchesService should not delete protected branches
Closes #34553
See merge request !12624
-rw-r--r-- | app/services/delete_merged_branches_service.rb | 2 | ||||
-rw-r--r-- | changelogs/unreleased/tc-no-delete-protected-merged-branches.yml | 4 | ||||
-rw-r--r-- | spec/services/delete_merged_branches_service_spec.rb | 8 |
3 files changed, 14 insertions, 0 deletions
diff --git a/app/services/delete_merged_branches_service.rb b/app/services/delete_merged_branches_service.rb index 3b611588466..5c9e2a16c71 100644 --- a/app/services/delete_merged_branches_service.rb +++ b/app/services/delete_merged_branches_service.rb @@ -10,6 +10,8 @@ class DeleteMergedBranchesService < BaseService branches = branches.select { |branch| project.repository.merged_to_root_ref?(branch) } # Prevent deletion of branches relevant to open merge requests branches -= merge_request_branch_names + # Prevent deletion of protected branches + branches -= project.protected_branches.pluck(:name) branches.each do |branch| DeleteBranchService.new(project, current_user).execute(branch) diff --git a/changelogs/unreleased/tc-no-delete-protected-merged-branches.yml b/changelogs/unreleased/tc-no-delete-protected-merged-branches.yml new file mode 100644 index 00000000000..663a0349bac --- /dev/null +++ b/changelogs/unreleased/tc-no-delete-protected-merged-branches.yml @@ -0,0 +1,4 @@ +--- +title: Do not delete protected branches when deleting all merged branches +merge_request: 12624 +author: diff --git a/spec/services/delete_merged_branches_service_spec.rb b/spec/services/delete_merged_branches_service_spec.rb index cae74df9c90..fe21ca0b3cb 100644 --- a/spec/services/delete_merged_branches_service_spec.rb +++ b/spec/services/delete_merged_branches_service_spec.rb @@ -24,6 +24,14 @@ describe DeleteMergedBranchesService, services: true do expect(project.repository.branch_names).to include('master') end + it 'keeps protected branches' do + create(:protected_branch, project: project, name: 'improve/awesome') + + service.execute + + expect(project.repository.branch_names).to include('improve/awesome') + end + context 'user without rights' do let(:user) { create(:user) } |