summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2019-04-03 10:20:50 +0000
committerRémy Coutable <remy@rymai.me>2019-04-03 10:20:50 +0000
commit7700e0298802857495bd3d0e7601a5d47a7b3335 (patch)
tree43d8f7e5edc761091616d4cfb08b7b4851c7efb4
parent5a6908e3e57623847ef19b2e51ccc48fb1010e90 (diff)
parentd17cce6aedf67139275362481c5b7fdeebf1b6a3 (diff)
downloadgitlab-ce-7700e0298802857495bd3d0e7601a5d47a7b3335.tar.gz
Merge branch '52560-fix-duplicate-tag-system-hooks' into 'master'
Only execute system hooks once when pushing tags Closes #52560 See merge request gitlab-org/gitlab-ce!26888
-rw-r--r--app/services/git/tag_push_service.rb12
-rw-r--r--changelogs/unreleased/52560-fix-duplicate-tag-system-hooks.yml5
-rw-r--r--spec/services/git/tag_push_service_spec.rb14
3 files changed, 19 insertions, 12 deletions
diff --git a/app/services/git/tag_push_service.rb b/app/services/git/tag_push_service.rb
index 318dfd4f886..9ce0fbdb206 100644
--- a/app/services/git/tag_push_service.rb
+++ b/app/services/git/tag_push_service.rb
@@ -13,7 +13,6 @@ module Git
EventCreateService.new.push(project, current_user, push_data)
Ci::CreatePipelineService.new(project, current_user, push_data).execute(:push, pipeline_options)
- SystemHooksService.new.execute_hooks(build_system_push_data, :tag_push_hooks)
project.execute_hooks(push_data.dup, :tag_push_hooks)
project.execute_services(push_data.dup, :tag_push_hooks)
@@ -50,17 +49,6 @@ module Git
push_options: params[:push_options] || [])
end
- def build_system_push_data
- Gitlab::DataBuilder::Push.build(
- project,
- current_user,
- params[:oldrev],
- params[:newrev],
- params[:ref],
- [],
- '')
- end
-
def pipeline_options
{} # to be overridden in EE
end
diff --git a/changelogs/unreleased/52560-fix-duplicate-tag-system-hooks.yml b/changelogs/unreleased/52560-fix-duplicate-tag-system-hooks.yml
new file mode 100644
index 00000000000..b8d58d6bd30
--- /dev/null
+++ b/changelogs/unreleased/52560-fix-duplicate-tag-system-hooks.yml
@@ -0,0 +1,5 @@
+---
+title: Only execute system hooks once when pushing tags
+merge_request: 26888
+author:
+type: fixed
diff --git a/spec/services/git/tag_push_service_spec.rb b/spec/services/git/tag_push_service_spec.rb
index e151db5827f..2d960fc9f08 100644
--- a/spec/services/git/tag_push_service_spec.rb
+++ b/spec/services/git/tag_push_service_spec.rb
@@ -31,6 +31,20 @@ describe Git::TagPushService do
end
end
+ describe 'System Hooks' do
+ let!(:push_data) { service.tap(&:execute).push_data }
+
+ it "executes system hooks after pushing a tag" do
+ expect_next_instance_of(SystemHooksService) do |system_hooks_service|
+ expect(system_hooks_service)
+ .to receive(:execute_hooks)
+ .with(push_data, :tag_push_hooks)
+ end
+
+ service.execute
+ end
+ end
+
describe "Pipelines" do
subject { service.execute }