diff options
author | Rémy Coutable <remy@rymai.me> | 2017-08-02 14:14:51 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-08-02 14:14:51 +0000 |
commit | 315c1ed140c5536edce46940f5f41f81e2680784 (patch) | |
tree | 342ff65b722229f0815706e9e88f3f58f8d990de | |
parent | 8ec089f3324ca6e181b575560c636c93bde6b52d (diff) | |
parent | 35081a77b0527e606c0835a979403ec4d55564d5 (diff) | |
download | gitlab-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.rb | 2 | ||||
-rw-r--r-- | changelogs/unreleased/tc-fix-wildcard-protected-delete-merged.yml | 4 | ||||
-rw-r--r-- | spec/services/delete_merged_branches_service_spec.rb | 8 |
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) } |