summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-08-02 14:14:51 +0000
committerRémy Coutable <remy@rymai.me>2017-08-02 14:14:51 +0000
commit315c1ed140c5536edce46940f5f41f81e2680784 (patch)
tree342ff65b722229f0815706e9e88f3f58f8d990de
parent8ec089f3324ca6e181b575560c636c93bde6b52d (diff)
parent35081a77b0527e606c0835a979403ec4d55564d5 (diff)
downloadgitlab-ce-315c1ed140c5536edce46940f5f41f81e2680784.tar.gz
Merge branch 'tc-fix-wildcard-protected-delete-merged' into 'master'
Make Delete Merged Branches handle wildcard protected branches correctly Closes #35592 See merge request !13251
-rw-r--r--app/services/delete_merged_branches_service.rb2
-rw-r--r--changelogs/unreleased/tc-fix-wildcard-protected-delete-merged.yml4
-rw-r--r--spec/services/delete_merged_branches_service_spec.rb8
3 files changed, 13 insertions, 1 deletions
diff --git a/app/services/delete_merged_branches_service.rb b/app/services/delete_merged_branches_service.rb
index 5c9e2a16c71..ff11bd59d29 100644
--- a/app/services/delete_merged_branches_service.rb
+++ b/app/services/delete_merged_branches_service.rb
@@ -11,7 +11,7 @@ class DeleteMergedBranchesService < BaseService
# 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 = branches.reject { |branch| project.protected_for?(branch) }
branches.each do |branch|
DeleteBranchService.new(project, current_user).execute(branch)
diff --git a/changelogs/unreleased/tc-fix-wildcard-protected-delete-merged.yml b/changelogs/unreleased/tc-fix-wildcard-protected-delete-merged.yml
new file mode 100644
index 00000000000..9ca5f81cf79
--- /dev/null
+++ b/changelogs/unreleased/tc-fix-wildcard-protected-delete-merged.yml
@@ -0,0 +1,4 @@
+---
+title: Make Delete Merged Branches handle wildcard protected branches correctly
+merge_request: 13251
+author:
diff --git a/spec/services/delete_merged_branches_service_spec.rb b/spec/services/delete_merged_branches_service_spec.rb
index 4b872d667cf..03c682ae0d7 100644
--- a/spec/services/delete_merged_branches_service_spec.rb
+++ b/spec/services/delete_merged_branches_service_spec.rb
@@ -32,6 +32,14 @@ describe DeleteMergedBranchesService do
expect(project.repository.branch_names).to include('improve/awesome')
end
+ it 'keeps wildcard protected branches' do
+ create(:protected_branch, project: project, name: 'improve/*')
+
+ service.execute
+
+ expect(project.repository.branch_names).to include('improve/awesome')
+ end
+
context 'user without rights' do
let(:user) { create(:user) }