diff options
author | Rémy Coutable <remy@rymai.me> | 2019-04-03 10:20:50 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2019-04-03 10:20:50 +0000 |
commit | 7700e0298802857495bd3d0e7601a5d47a7b3335 (patch) | |
tree | 43d8f7e5edc761091616d4cfb08b7b4851c7efb4 | |
parent | 5a6908e3e57623847ef19b2e51ccc48fb1010e90 (diff) | |
parent | d17cce6aedf67139275362481c5b7fdeebf1b6a3 (diff) | |
download | gitlab-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.rb | 12 | ||||
-rw-r--r-- | changelogs/unreleased/52560-fix-duplicate-tag-system-hooks.yml | 5 | ||||
-rw-r--r-- | spec/services/git/tag_push_service_spec.rb | 14 |
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 } |