From e0ab5618a0998175df9f90c95ebd35d7afa01db7 Mon Sep 17 00:00:00 2001 From: Alexander Randa Date: Thu, 20 Jul 2017 15:12:06 +0000 Subject: [PATCH] Wrong data type when testing webhooks --- app/controllers/admin/hook_logs_controller.rb | 4 +- app/controllers/admin/hooks_controller.rb | 15 +- app/controllers/concerns/hooks_execution.rb | 13 +- .../projects/hook_logs_controller.rb | 4 +- app/controllers/projects/hooks_controller.rb | 12 +- app/helpers/hooks_helper.rb | 17 ++ app/models/hooks/project_hook.rb | 25 ++- app/models/hooks/service_hook.rb | 1 + app/models/hooks/system_hook.rb | 10 +- app/models/hooks/web_hook.rb | 14 -- app/services/system_hooks_service.rb | 2 +- app/services/test_hook_service.rb | 6 - app/services/test_hooks/base_service.rb | 41 ++++ app/services/test_hooks/project_service.rb | 63 ++++++ app/services/test_hooks/system_service.rb | 48 +++++ app/services/web_hook_service.rb | 11 +- app/services/wiki_pages/base_service.rb | 16 +- app/views/admin/hooks/edit.html.haml | 2 +- app/views/admin/hooks/index.html.haml | 8 +- app/views/projects/hooks/edit.html.haml | 3 +- .../integrations/_project_hook.html.haml | 14 +- .../shared/web_hooks/_test_button.html.haml | 12 ++ .../unreleased/5971-webhook-testing.yml | 4 + .../integrations/img/webhook_testing.png | Bin 0 -> 191267 bytes doc/user/project/integrations/webhooks.md | 9 +- lib/gitlab/data_builder/push.rb | 2 + lib/gitlab/data_builder/wiki_page.rb | 22 ++ .../projects/hooks_controller_spec.rb | 21 ++ spec/factories/ci/builds.rb | 2 +- spec/factories/project_hooks.rb | 1 + spec/features/admin/admin_hooks_spec.rb | 6 +- .../settings/integration_settings_spec.rb | 25 +-- spec/helpers/hooks_helper_spec.rb | 20 ++ .../lib/gitlab/data_builder/wiki_page_spec.rb | 21 ++ spec/models/hooks/project_hook_spec.rb | 6 +- spec/models/hooks/service_hook_spec.rb | 4 + spec/models/hooks/system_hook_spec.rb | 3 +- .../microsoft_teams_service_spec.rb | 2 +- spec/models/project_spec.rb | 12 +- spec/services/test_hook_service_spec.rb | 14 -- .../test_hooks/project_service_spec.rb | 188 ++++++++++++++++++ .../test_hooks/system_service_spec.rb | 82 ++++++++ spec/services/web_hook_service_spec.rb | 6 +- ...attermost_notifications_shared_examples.rb | 2 +- 44 files changed, 663 insertions(+), 130 deletions(-) create mode 100644 app/helpers/hooks_helper.rb delete mode 100644 app/services/test_hook_service.rb create mode 100644 app/services/test_hooks/base_service.rb create mode 100644 app/services/test_hooks/project_service.rb create mode 100644 app/services/test_hooks/system_service.rb create mode 100644 app/views/shared/web_hooks/_test_button.html.haml create mode 100644 changelogs/unreleased/5971-webhook-testing.yml create mode 100644 doc/user/project/integrations/img/webhook_testing.png create mode 100644 lib/gitlab/data_builder/wiki_page.rb create mode 100644 spec/controllers/projects/hooks_controller_spec.rb create mode 100644 spec/helpers/hooks_helper_spec.rb create mode 100644 spec/lib/gitlab/data_builder/wiki_page_spec.rb delete mode 100644 spec/services/test_hook_service_spec.rb create mode 100644 spec/services/test_hooks/project_service_spec.rb create mode 100644 spec/services/test_hooks/system_service_spec.rb diff --git a/app/controllers/admin/hook_logs_controller.rb b/app/controllers/admin/hook_logs_controller.rb index aa069b89563..3017f96c26f 100644 --- a/app/controllers/admin/hook_logs_controller.rb +++ b/app/controllers/admin/hook_logs_controller.rb @@ -10,9 +10,9 @@ class Admin::HookLogsController < Admin::ApplicationController end def retry - status, message = hook.execute(hook_log.request_data, hook_log.trigger) + result = hook.execute(hook_log.request_data, hook_log.trigger) - set_hook_execution_notice(status, message) + set_hook_execution_notice(result) redirect_to edit_admin_hook_path(@hook) end diff --git a/app/controllers/admin/hooks_controller.rb b/app/controllers/admin/hooks_controller.rb index 054c3500b35..77e3c95d197 100644 --- a/app/controllers/admin/hooks_controller.rb +++ b/app/controllers/admin/hooks_controller.rb @@ -38,9 +38,9 @@ class Admin::HooksController < Admin::ApplicationController end def test - status, message = hook.execute(sample_hook_data, 'system_hooks') + result = TestHooks::SystemService.new(hook, current_user, params[:trigger]).execute - set_hook_execution_notice(status, message) + set_hook_execution_notice(result) redirect_back_or_default end @@ -66,15 +66,4 @@ class Admin::HooksController < Admin::ApplicationController :url ) end - - def sample_hook_data - { - event_name: "project_create", - name: "Ruby", - path: "ruby", - project_id: 1, - owner_name: "Someone", - owner_email: "example@gitlabhq.com" - } - end end diff --git a/app/controllers/concerns/hooks_execution.rb b/app/controllers/concerns/hooks_execution.rb index 846cd60518f..a22e46b4860 100644 --- a/app/controllers/concerns/hooks_execution.rb +++ b/app/controllers/concerns/hooks_execution.rb @@ -3,11 +3,14 @@ module HooksExecution private - def set_hook_execution_notice(status, message) - if status && status >= 200 && status < 400 - flash[:notice] = "Hook executed successfully: HTTP #{status}" - elsif status - flash[:alert] = "Hook executed successfully but returned HTTP #{status} #{message}" + def set_hook_execution_notice(result) + http_status = result[:http_status] + message = result[:message] + + if http_status && http_status >= 200 && http_status < 400 + flash[:notice] = "Hook executed successfully: HTTP #{http_status}" + elsif http_status + flash[:alert] = "Hook executed successfully but returned HTTP #{http_status} #{message}" else flash[:alert] = "Hook execution failed: #{message}" end diff --git a/app/controllers/projects/hook_logs_controller.rb b/app/controllers/projects/hook_logs_controller.rb index b9c4b29580a..745e89fc843 100644 --- a/app/controllers/projects/hook_logs_controller.rb +++ b/app/controllers/projects/hook_logs_controller.rb @@ -14,9 +14,9 @@ class Projects::HookLogsController < Projects::ApplicationController end def retry - status, message = hook.execute(hook_log.request_data, hook_log.trigger) + result = hook.execute(hook_log.request_data, hook_log.trigger) - set_hook_execution_notice(status, message) + set_hook_execution_notice(result) redirect_to edit_project_hook_path(@project, @hook) end diff --git a/app/controllers/projects/hooks_controller.rb b/app/controllers/projects/hooks_controller.rb index 18895c3f0f3..85d35900c71 100644 --- a/app/controllers/projects/hooks_controller.rb +++ b/app/controllers/projects/hooks_controller.rb @@ -9,6 +9,10 @@ class Projects::HooksController < Projects::ApplicationController layout "project_settings" + def index + redirect_to project_settings_integrations_path(@project) + end + def create @hook = @project.hooks.new(hook_params) @hook.save @@ -33,13 +37,9 @@ class Projects::HooksController < Projects::ApplicationController end def test - if !@project.empty_repo? - status, message = TestHookService.new.execute(hook, current_user) + result = TestHooks::ProjectService.new(hook, current_user, params[:trigger]).execute - set_hook_execution_notice(status, message) - else - flash[:alert] = 'Hook execution failed. Ensure the project has commits.' - end + set_hook_execution_notice(result) redirect_back_or_default(default: { action: 'index' }) end diff --git a/app/helpers/hooks_helper.rb b/app/helpers/hooks_helper.rb new file mode 100644 index 00000000000..551b9cca6b1 --- /dev/null +++ b/app/helpers/hooks_helper.rb @@ -0,0 +1,17 @@ +module HooksHelper + def link_to_test_hook(hook, trigger) + path = case hook + when ProjectHook + project = hook.project + test_project_hook_path(project, hook, trigger: trigger) + when SystemHook + test_admin_hook_path(hook, trigger: trigger) + end + + trigger_human_name = trigger.to_s.tr('_', ' ').camelize + + link_to path, rel: 'nofollow' do + content_tag(:span, trigger_human_name) + end + end +end diff --git a/app/models/hooks/project_hook.rb b/app/models/hooks/project_hook.rb index ee6165fd32d..a8c424a6614 100644 --- a/app/models/hooks/project_hook.rb +++ b/app/models/hooks/project_hook.rb @@ -1,11 +1,20 @@ class ProjectHook < WebHook - belongs_to :project + TRIGGERS = { + push_hooks: :push_events, + tag_push_hooks: :tag_push_events, + issue_hooks: :issues_events, + confidential_issue_hooks: :confidential_issues_events, + note_hooks: :note_events, + merge_request_hooks: :merge_requests_events, + job_hooks: :job_events, + pipeline_hooks: :pipeline_events, + wiki_page_hooks: :wiki_page_events + }.freeze - scope :issue_hooks, -> { where(issues_events: true) } - scope :confidential_issue_hooks, -> { where(confidential_issues_events: true) } - scope :note_hooks, -> { where(note_events: true) } - scope :merge_request_hooks, -> { where(merge_requests_events: true) } - scope :job_hooks, -> { where(job_events: true) } - scope :pipeline_hooks, -> { where(pipeline_events: true) } - scope :wiki_page_hooks, -> { where(wiki_page_events: true) } + TRIGGERS.each do |trigger, event| + scope trigger, -> { where(event => true) } + end + + belongs_to :project + validates :project, presence: true end diff --git a/app/models/hooks/service_hook.rb b/app/models/hooks/service_hook.rb index 40e43c27f91..aef11514945 100644 --- a/app/models/hooks/service_hook.rb +++ b/app/models/hooks/service_hook.rb @@ -1,5 +1,6 @@ class ServiceHook < WebHook belongs_to :service + validates :service, presence: true def execute(data) WebHookService.new(self, data, 'service_hook').execute diff --git a/app/models/hooks/system_hook.rb b/app/models/hooks/system_hook.rb index 1584235ab00..180c479c41b 100644 --- a/app/models/hooks/system_hook.rb +++ b/app/models/hooks/system_hook.rb @@ -1,5 +1,13 @@ class SystemHook < WebHook - scope :repository_update_hooks, -> { where(repository_update_events: true) } + TRIGGERS = { + repository_update_hooks: :repository_update_events, + push_hooks: :push_events, + tag_push_hooks: :tag_push_events + }.freeze + + TRIGGERS.each do |trigger, event| + scope trigger, -> { where(event => true) } + end default_value_for :push_events, false default_value_for :repository_update_events, true diff --git a/app/models/hooks/web_hook.rb b/app/models/hooks/web_hook.rb index 7a9f8997959..5a70e114f56 100644 --- a/app/models/hooks/web_hook.rb +++ b/app/models/hooks/web_hook.rb @@ -1,22 +1,8 @@ class WebHook < ActiveRecord::Base include Sortable - default_value_for :push_events, true - default_value_for :issues_events, false - default_value_for :confidential_issues_events, false - default_value_for :note_events, false - default_value_for :merge_requests_events, false - default_value_for :tag_push_events, false - default_value_for :job_events, false - default_value_for :pipeline_events, false - default_value_for :repository_update_events, false - default_value_for :enable_ssl_verification, true - has_many :web_hook_logs, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent - scope :push_hooks, -> { where(push_events: true) } - scope :tag_push_hooks, -> { where(tag_push_events: true) } - validates :url, presence: true, url: true def execute(data, hook_name) diff --git a/app/services/system_hooks_service.rb b/app/services/system_hooks_service.rb index ed476fc9d0c..bd58a54592f 100644 --- a/app/services/system_hooks_service.rb +++ b/app/services/system_hooks_service.rb @@ -4,7 +4,7 @@ class SystemHooksService end def execute_hooks(data, hooks_scope = :all) - SystemHook.send(hooks_scope).each do |hook| + SystemHook.public_send(hooks_scope).find_each do |hook| hook.async_execute(data, 'system_hooks') end end diff --git a/app/services/test_hook_service.rb b/app/services/test_hook_service.rb deleted file mode 100644 index 280c81f7d2d..00000000000 --- a/app/services/test_hook_service.rb +++ /dev/null @@ -1,6 +0,0 @@ -class TestHookService - def execute(hook, current_user) - data = Gitlab::DataBuilder::Push.build_sample(hook.project, current_user) - hook.execute(data, 'push_hooks') - end -end diff --git a/app/services/test_hooks/base_service.rb b/app/services/test_hooks/base_service.rb new file mode 100644 index 00000000000..74ba814afff --- /dev/null +++ b/app/services/test_hooks/base_service.rb @@ -0,0 +1,41 @@ +module TestHooks + class BaseService + attr_accessor :hook, :current_user, :trigger + + def initialize(hook, current_user, trigger) + @hook = hook + @current_user = current_user + @trigger = trigger + end + + def execute + trigger_data_method = "#{trigger}_data" + + if !self.respond_to?(trigger_data_method, true) || + !hook.class::TRIGGERS.value?(trigger.to_sym) + + return error('Testing not available for this hook') + end + + error_message = catch(:validation_error) do + sample_data = self.__send__(trigger_data_method) + + return hook.execute(sample_data, trigger) + end + + error(error_message) + end + + private + + def error(message, http_status = nil) + result = { + message: message, + status: :error + } + + result[:http_status] = http_status if http_status + result + end + end +end diff --git a/app/services/test_hooks/project_service.rb b/app/services/test_hooks/project_service.rb new file mode 100644 index 00000000000..01d5d774cd5 --- /dev/null +++ b/app/services/test_hooks/project_service.rb @@ -0,0 +1,63 @@ +module TestHooks + class ProjectService < TestHooks::BaseService + private + + def project + @project ||= hook.project + end + + def push_events_data + throw(:validation_error, 'Ensure the project has at least one commit.') if project.empty_repo? + + Gitlab::DataBuilder::Push.build_sample(project, current_user) + end + + alias_method :tag_push_events_data, :push_events_data + + def note_events_data + note = project.notes.first + throw(:validation_error, 'Ensure the project has notes.') unless note.present? + + Gitlab::DataBuilder::Note.build(note, current_user) + end + + def issues_events_data + issue = project.issues.first + throw(:validation_error, 'Ensure the project has issues.') unless issue.present? + + issue.to_hook_data(current_user) + end + + alias_method :confidential_issues_events_data, :issues_events_data + + def merge_requests_events_data + merge_request = project.merge_requests.first + throw(:validation_error, 'Ensure the project has merge requests.') unless merge_request.present? + + merge_request.to_hook_data(current_user) + end + + def job_events_data + build = project.builds.first + throw(:validation_error, 'Ensure the project has CI jobs.') unless build.present? + + Gitlab::DataBuilder::Build.build(build) + end + + def pipeline_events_data + pipeline = project.pipelines.first + throw(:validation_error, 'Ensure the project has CI pipelines.') unless pipeline.present? + + Gitlab::DataBuilder::Pipeline.build(pipeline) + end + + def wiki_page_events_data + page = project.wiki.pages.first + if !project.wiki_enabled? || page.blank? + throw(:validation_error, 'Ensure the wiki is enabled and has pages.') + end + + Gitlab::DataBuilder::WikiPage.build(page, current_user, 'create') + end + end +end diff --git a/app/services/test_hooks/system_service.rb b/app/services/test_hooks/system_service.rb new file mode 100644 index 00000000000..76c3c19bd74 --- /dev/null +++ b/app/services/test_hooks/system_service.rb @@ -0,0 +1,48 @@ +module TestHooks + class SystemService < TestHooks::BaseService + private + + def project + @project ||= begin + project = Project.first + + throw(:validation_error, 'Ensure that at least one project exists.') unless project + + project + end + end + + def push_events_data + if project.empty_repo? + throw(:validation_error, "Ensure project \"#{project.human_name}\" has commits.") + end + + Gitlab::DataBuilder::Push.build_sample(project, current_user) + end + + def tag_push_events_data + if project.repository.tags.empty? + throw(:validation_error, "Ensure project \"#{project.human_name}\" has tags.") + end + + Gitlab::DataBuilder::Push.build_sample(project, current_user) + end + + def repository_update_events_data + commit = project.commit + ref = "#{Gitlab::Git::BRANCH_REF_PREFIX}#{project.default_branch}" + + unless commit + throw(:validation_error, "Ensure project \"#{project.human_name}\" has commits.") + end + + change = Gitlab::DataBuilder::Repository.single_change( + commit.parent_id || Gitlab::Git::BLANK_SHA, + commit.id, + ref + ) + + Gitlab::DataBuilder::Repository.update(project, current_user, [change], [ref]) + end + end +end diff --git a/app/services/web_hook_service.rb b/app/services/web_hook_service.rb index 4241b912d5b..a5110a23cad 100644 --- a/app/services/web_hook_service.rb +++ b/app/services/web_hook_service.rb @@ -39,7 +39,11 @@ class WebHookService execution_duration: Time.now - start_time ) - [response.code, response.to_s] + { + status: :success, + http_status: response.code, + message: response.to_s + } rescue SocketError, OpenSSL::SSL::SSLError, Errno::ECONNRESET, Errno::ECONNREFUSED, Net::OpenTimeout => e log_execution( trigger: hook_name, @@ -52,7 +56,10 @@ class WebHookService Rails.logger.error("WebHook Error => #{e}") - [nil, e.to_s] + { + status: :error, + message: e.to_s + } end def async_execute diff --git a/app/services/wiki_pages/base_service.rb b/app/services/wiki_pages/base_service.rb index 14317ea65c8..260c04a8b94 100644 --- a/app/services/wiki_pages/base_service.rb +++ b/app/services/wiki_pages/base_service.rb @@ -1,23 +1,9 @@ module WikiPages class BaseService < ::BaseService - def hook_data(page, action) - hook_data = { - object_kind: page.class.name.underscore, - user: current_user.hook_attrs, - project: @project.hook_attrs, - wiki: @project.wiki.hook_attrs, - object_attributes: page.hook_attrs - } - - page_url = Gitlab::UrlBuilder.build(page) - hook_data[:object_attributes].merge!(url: page_url, action: action) - hook_data - end - private def execute_hooks(page, action = 'create') - page_data = hook_data(page, action) + page_data = Gitlab::DataBuilder::WikiPage.build(page, current_user, action) @project.execute_hooks(page_data, :wiki_page_hooks) @project.execute_services(page_data, :wiki_page_hooks) end diff --git a/app/views/admin/hooks/edit.html.haml b/app/views/admin/hooks/edit.html.haml index 0e35a1905bf..665e8c7e74f 100644 --- a/app/views/admin/hooks/edit.html.haml +++ b/app/views/admin/hooks/edit.html.haml @@ -12,7 +12,7 @@ = render partial: 'form', locals: { form: f, hook: @hook } .form-actions = f.submit 'Save changes', class: 'btn btn-create' - = link_to 'Test hook', test_admin_hook_path(@hook), class: 'btn btn-default' + = render 'shared/web_hooks/test_button', triggers: SystemHook::TRIGGERS, hook: @hook = link_to 'Remove', admin_hook_path(@hook), method: :delete, class: 'btn btn-remove pull-right', data: { confirm: 'Are you sure?' } %hr diff --git a/app/views/admin/hooks/index.html.haml b/app/views/admin/hooks/index.html.haml index e92b8bc39f4..fed6002528d 100644 --- a/app/views/admin/hooks/index.html.haml +++ b/app/views/admin/hooks/index.html.haml @@ -22,12 +22,12 @@ - @hooks.each do |hook| %li .controls - = link_to 'Test hook', test_admin_hook_path(hook), class: 'btn btn-sm' + = render 'shared/web_hooks/test_button', triggers: SystemHook::TRIGGERS, hook: hook, button_class: 'btn-small' = link_to 'Edit', edit_admin_hook_path(hook), class: 'btn btn-sm' = link_to 'Remove', admin_hook_path(hook), data: { confirm: 'Are you sure?' }, method: :delete, class: 'btn btn-remove btn-sm' .monospace= hook.url %div - - %w(repository_update_events push_events tag_push_events issues_events note_events merge_requests_events job_events).each do |trigger| - - if hook.send(trigger) - %span.label.label-gray= trigger.titleize + - SystemHook::TRIGGERS.each_value do |event| + - if hook.public_send(event) + %span.label.label-gray= event.to_s.titleize %span.label.label-gray SSL Verification: #{hook.enable_ssl_verification ? 'enabled' : 'disabled'} diff --git a/app/views/projects/hooks/edit.html.haml b/app/views/projects/hooks/edit.html.haml index 4944e0c8041..c8c17d2d828 100644 --- a/app/views/projects/hooks/edit.html.haml +++ b/app/views/projects/hooks/edit.html.haml @@ -13,9 +13,10 @@ = render partial: 'shared/web_hooks/form', locals: { form: f, hook: @hook } = f.submit 'Save changes', class: 'btn btn-create' - = link_to 'Test hook', test_project_hook_path(@project, @hook), class: 'btn btn-default' + = render 'shared/web_hooks/test_button', triggers: ProjectHook::TRIGGERS, hook: @hook = link_to 'Remove', project_hook_path(@project, @hook), method: :delete, class: 'btn btn-remove pull-right', data: { confirm: 'Are you sure?' } %hr = render partial: 'projects/hook_logs/index', locals: { hook: @hook, hook_logs: @hook_logs, project: @project } + diff --git a/app/views/projects/settings/integrations/_project_hook.html.haml b/app/views/projects/settings/integrations/_project_hook.html.haml index 00700e286c3..d5792e95f5a 100644 --- a/app/views/projects/settings/integrations/_project_hook.html.haml +++ b/app/views/projects/settings/integrations/_project_hook.html.haml @@ -3,14 +3,14 @@ .col-md-8.col-lg-7 %strong.light-header= hook.url %div - - %w(push_events tag_push_events issues_events confidential_issues_events note_events merge_requests_events job_events pipeline_events wiki_page_events).each do |trigger| - - if hook.send(trigger) - %span.label.label-gray.deploy-project-label= trigger.titleize + - ProjectHook::TRIGGERS.each_value do |event| + - if hook.public_send(event) + %span.label.label-gray.deploy-project-label= event.to_s.titleize .col-md-4.col-lg-5.text-right-lg.prepend-top-5 %span.append-right-10.inline - SSL Verification: #{hook.enable_ssl_verification ? "enabled" : "disabled"} - = link_to "Edit", edit_project_hook_path(@project, hook), class: "btn btn-sm" - = link_to "Test", test_project_hook_path(@project, hook), class: "btn btn-sm" - = link_to project_hook_path(@project, hook), data: { confirm: 'Are you sure?'}, method: :delete, class: "btn btn-transparent" do + SSL Verification: #{hook.enable_ssl_verification ? 'enabled' : 'disabled'} + = link_to 'Edit', edit_project_hook_path(@project, hook), class: 'btn btn-sm' + = render 'shared/web_hooks/test_button', triggers: ProjectHook::TRIGGERS, hook: hook, button_class: 'btn-small' + = link_to project_hook_path(@project, hook), data: { confirm: 'Are you sure?'}, method: :delete, class: 'btn btn-transparent' do %span.sr-only Remove = icon('trash') diff --git a/app/views/shared/web_hooks/_test_button.html.haml b/app/views/shared/web_hooks/_test_button.html.haml new file mode 100644 index 00000000000..cf1d5e061c6 --- /dev/null +++ b/app/views/shared/web_hooks/_test_button.html.haml @@ -0,0 +1,12 @@ +- triggers = local_assigns.fetch(:triggers) +- button_class = local_assigns.fetch(:button_class, '') +- hook = local_assigns.fetch(:hook) + +.hook-test-button.dropdown.inline + %button.btn{ 'data-toggle' => 'dropdown', class: button_class } + Test + = icon('caret-down') + %ul.dropdown-menu.dropdown-menu-align-right{ role: 'menu' } + - triggers.each_value do |event| + %li + = link_to_test_hook(hook, event) diff --git a/changelogs/unreleased/5971-webhook-testing.yml b/changelogs/unreleased/5971-webhook-testing.yml new file mode 100644 index 00000000000..58233091977 --- /dev/null +++ b/changelogs/unreleased/5971-webhook-testing.yml @@ -0,0 +1,4 @@ +--- +title: Allow testing any events for project hooks and system hooks +merge_request: 11728 +author: Alexander Randa (@randaalex) diff --git a/doc/user/project/integrations/img/webhook_testing.png b/doc/user/project/integrations/img/webhook_testing.png new file mode 100644 index 0000000000000000000000000000000000000000..176dcec9d8a7393e90214f3264902b900c549819 GIT binary patch literal 191267 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%0At-H*Z&!D- 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
2VJ!if9vFr}%XdaDrxn(C6CKmT>=3X_r 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 IIVCg!0BpKaegFUf literal 0 HcmV?d00001 diff --git a/doc/user/project/integrations/webhooks.md b/doc/user/project/integrations/webhooks.md index 023c6932e41..c03a2df9a72 100644 --- a/doc/user/project/integrations/webhooks.md +++ b/doc/user/project/integrations/webhooks.md @@ -1014,6 +1014,13 @@ X-Gitlab-Event: Build Hook } ``` +## Testing webhooks + +You can trigger the webhook manually. Sample data from the project will be used.Sample data will take from the project. +> For example: for triggering `Push Events` your project should have at least one commit. + +![Webhook testing](img/webhook_testing.png) + ## Troubleshoot webhooks Gitlab stores each perform of the webhook. @@ -1056,7 +1063,7 @@ Pick an unused port (e.g. 8000) and start the script: `ruby print_http_body.rb 8000`. Then add your server as a webhook receiver in GitLab as `http://my.host:8000/`. -When you press 'Test Hook' in GitLab, you should see something like this in the +When you press 'Test' in GitLab, you should see something like this in the console: ``` diff --git a/lib/gitlab/data_builder/push.rb b/lib/gitlab/data_builder/push.rb index e81d19a7a2e..8c8729b6557 100644 --- a/lib/gitlab/data_builder/push.rb +++ b/lib/gitlab/data_builder/push.rb @@ -74,6 +74,8 @@ module Gitlab build(project, user, commits.last&.id, commits.first&.id, ref, commits) end + private + def checkout_sha(repository, newrev, ref) # Checkout sha is nil when we remove branch or tag return if Gitlab::Git.blank_ref?(newrev) diff --git a/lib/gitlab/data_builder/wiki_page.rb b/lib/gitlab/data_builder/wiki_page.rb new file mode 100644 index 00000000000..226974b698c --- /dev/null +++ b/lib/gitlab/data_builder/wiki_page.rb @@ -0,0 +1,22 @@ +module Gitlab + module DataBuilder + module WikiPage + extend self + + def build(wiki_page, user, action) + wiki = wiki_page.wiki + + { + object_kind: wiki_page.class.name.underscore, + user: user.hook_attrs, + project: wiki.project.hook_attrs, + wiki: wiki.hook_attrs, + object_attributes: wiki_page.hook_attrs.merge( + url: Gitlab::UrlBuilder.build(wiki_page), + action: action + ) + } + end + end + end +end diff --git a/spec/controllers/projects/hooks_controller_spec.rb b/spec/controllers/projects/hooks_controller_spec.rb new file mode 100644 index 00000000000..b93ab220f4d --- /dev/null +++ b/spec/controllers/projects/hooks_controller_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper' + +describe Projects::HooksController do + let(:project) { create(:empty_project) } + let(:user) { create(:user) } + + before do + project.team << [user, :master] + sign_in(user) + end + + describe '#index' do + it 'redirects to settings/integrations page' do + get(:index, namespace_id: project.namespace, project_id: project) + + expect(response).to redirect_to( + project_settings_integrations_path(project) + ) + end + end +end diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index 678cebe365b..5bba1dec7db 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -110,7 +110,7 @@ FactoryGirl.define do end after(:build) do |build, evaluator| - build.project = build.pipeline.project + build.project ||= build.pipeline.project end factory :ci_not_started_build do diff --git a/spec/factories/project_hooks.rb b/spec/factories/project_hooks.rb index cd754ea235f..d754e980931 100644 --- a/spec/factories/project_hooks.rb +++ b/spec/factories/project_hooks.rb @@ -2,6 +2,7 @@ FactoryGirl.define do factory :project_hook do url { generate(:url) } enable_ssl_verification false + project factory: :empty_project trait :token do token { SecureRandom.hex(10) } diff --git a/spec/features/admin/admin_hooks_spec.rb b/spec/features/admin/admin_hooks_spec.rb index 1e675fc0ce7..9a438b65e68 100644 --- a/spec/features/admin/admin_hooks_spec.rb +++ b/spec/features/admin/admin_hooks_spec.rb @@ -74,11 +74,13 @@ describe 'Admin::Hooks', feature: true do end end - describe 'Test' do + describe 'Test', js: true do before do WebMock.stub_request(:post, @system_hook.url) visit admin_hooks_path - click_link 'Test hook' + + find('.hook-test-button.dropdown').click + click_link 'Push events' end it { expect(current_path).to eq(admin_hooks_path) } diff --git a/spec/features/projects/settings/integration_settings_spec.rb b/spec/features/projects/settings/integration_settings_spec.rb index 13313bfde24..6ae242af87f 100644 --- a/spec/features/projects/settings/integration_settings_spec.rb +++ b/spec/features/projects/settings/integration_settings_spec.rb @@ -36,14 +36,14 @@ feature 'Integration settings', feature: true do expect(page.status_code).to eq(200) expect(page).to have_content(hook.url) expect(page).to have_content('SSL Verification: enabled') - expect(page).to have_content('Push Events') - expect(page).to have_content('Tag Push Events') - expect(page).to have_content('Issues Events') - expect(page).to have_content('Confidential Issues Events') - expect(page).to have_content('Note Events') - expect(page).to have_content('Merge Requests Events') - expect(page).to have_content('Pipeline Events') - expect(page).to have_content('Wiki Page Events') + expect(page).to have_content('Push events') + expect(page).to have_content('Tag push events') + expect(page).to have_content('Issues events') + expect(page).to have_content('Confidential issues events') + expect(page).to have_content('Note events') + expect(page).to have_content('Merge requests events') + expect(page).to have_content('Pipeline events') + expect(page).to have_content('Wiki page events') end scenario 'create webhook' do @@ -58,8 +58,8 @@ feature 'Integration settings', feature: true do expect(page).to have_content(url) expect(page).to have_content('SSL Verification: enabled') - expect(page).to have_content('Push Events') - expect(page).to have_content('Tag Push Events') + expect(page).to have_content('Push events') + expect(page).to have_content('Tag push events') expect(page).to have_content('Job events') end @@ -76,11 +76,12 @@ feature 'Integration settings', feature: true do expect(page).to have_content(url) end - scenario 'test existing webhook' do + scenario 'test existing webhook', js: true do WebMock.stub_request(:post, hook.url) visit integrations_path - click_link 'Test' + find('.hook-test-button.dropdown').click + click_link 'Push events' expect(current_path).to eq(integrations_path) end diff --git a/spec/helpers/hooks_helper_spec.rb b/spec/helpers/hooks_helper_spec.rb new file mode 100644 index 00000000000..9f0004bf8cf --- /dev/null +++ b/spec/helpers/hooks_helper_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +describe HooksHelper do + let(:project) { create(:empty_project) } + let(:project_hook) { create(:project_hook, project: project) } + let(:system_hook) { create(:system_hook) } + let(:trigger) { 'push_events' } + + describe '#link_to_test_hook' do + it 'returns project namespaced link' do + expect(helper.link_to_test_hook(project_hook, trigger)) + .to include("href=\"#{test_project_hook_path(project, project_hook, trigger: trigger)}\"") + end + + it 'returns admin namespaced link' do + expect(helper.link_to_test_hook(system_hook, trigger)) + .to include("href=\"#{test_admin_hook_path(system_hook, trigger: trigger)}\"") + end + end +end diff --git a/spec/lib/gitlab/data_builder/wiki_page_spec.rb b/spec/lib/gitlab/data_builder/wiki_page_spec.rb new file mode 100644 index 00000000000..a776d888c47 --- /dev/null +++ b/spec/lib/gitlab/data_builder/wiki_page_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper' + +describe Gitlab::DataBuilder::WikiPage do + let(:project) { create(:project, :repository) } + let(:wiki_page) { create(:wiki_page, wiki: project.wiki) } + let(:user) { create(:user) } + + describe '.build' do + let(:data) { described_class.build(wiki_page, user, 'create') } + + it { expect(data).to be_a(Hash) } + it { expect(data[:object_kind]).to eq('wiki_page') } + it { expect(data[:user]).to eq(user.hook_attrs) } + it { expect(data[:project]).to eq(project.hook_attrs) } + it { expect(data[:wiki]).to eq(project.wiki.hook_attrs) } + + it { expect(data[:object_attributes]).to include(wiki_page.hook_attrs) } + it { expect(data[:object_attributes]).to include(url: Gitlab::UrlBuilder.build(wiki_page)) } + it { expect(data[:object_attributes]).to include(action: 'create') } + end +end diff --git a/spec/models/hooks/project_hook_spec.rb b/spec/models/hooks/project_hook_spec.rb index 474ae62ccec..0af270014b5 100644 --- a/spec/models/hooks/project_hook_spec.rb +++ b/spec/models/hooks/project_hook_spec.rb @@ -1,10 +1,14 @@ require 'spec_helper' describe ProjectHook, models: true do - describe "Associations" do + describe 'associations' do it { is_expected.to belong_to :project } end + describe 'validations' do + it { is_expected.to validate_presence_of(:project) } + end + describe '.push_hooks' do it 'returns hooks for push events only' do hook = create(:project_hook, push_events: true) diff --git a/spec/models/hooks/service_hook_spec.rb b/spec/models/hooks/service_hook_spec.rb index 57454d2a773..8e871a41a8c 100644 --- a/spec/models/hooks/service_hook_spec.rb +++ b/spec/models/hooks/service_hook_spec.rb @@ -5,6 +5,10 @@ describe ServiceHook, models: true do it { is_expected.to belong_to :service } end + describe 'validations' do + it { is_expected.to validate_presence_of(:service) } + end + describe 'execute' do let(:hook) { build(:service_hook) } let(:data) { { key: 'value' } } diff --git a/spec/models/hooks/system_hook_spec.rb b/spec/models/hooks/system_hook_spec.rb index 0d2b622132e..559778257fa 100644 --- a/spec/models/hooks/system_hook_spec.rb +++ b/spec/models/hooks/system_hook_spec.rb @@ -7,8 +7,7 @@ describe SystemHook, models: true do it 'sets defined default parameters' do attrs = { push_events: false, - repository_update_events: true, - enable_ssl_verification: true + repository_update_events: true } expect(system_hook).to have_attributes(attrs) end diff --git a/spec/models/project_services/microsoft_teams_service_spec.rb b/spec/models/project_services/microsoft_teams_service_spec.rb index bd50a2d1470..fb95c4cda35 100644 --- a/spec/models/project_services/microsoft_teams_service_spec.rb +++ b/spec/models/project_services/microsoft_teams_service_spec.rb @@ -112,7 +112,7 @@ describe MicrosoftTeamsService, models: true do let(:wiki_page_sample_data) do service = WikiPages::CreateService.new(project, user, opts) wiki_page = service.execute - service.hook_data(wiki_page, 'create') + Gitlab::DataBuilder::WikiPage.build(wiki_page, user, 'create') end it "calls Microsoft Teams API" do diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 90769b580cd..fdcb011d685 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -309,10 +309,14 @@ describe Project, models: true do end describe 'delegation' do - it { is_expected.to delegate_method(:add_guest).to(:team) } - it { is_expected.to delegate_method(:add_reporter).to(:team) } - it { is_expected.to delegate_method(:add_developer).to(:team) } - it { is_expected.to delegate_method(:add_master).to(:team) } + [:add_guest, :add_reporter, :add_developer, :add_master, :add_user, :add_users].each do |method| + it { is_expected.to delegate_method(method).to(:team) } + end + + it { is_expected.to delegate_method(:empty_repo?).to(:repository) } + it { is_expected.to delegate_method(:members).to(:team).with_prefix(true) } + it { is_expected.to delegate_method(:count).to(:forks).with_prefix(true) } + it { is_expected.to delegate_method(:name).to(:owner).with_prefix(true).with_arguments(allow_nil: true) } end describe '#to_reference' do diff --git a/spec/services/test_hook_service_spec.rb b/spec/services/test_hook_service_spec.rb deleted file mode 100644 index f99fd8434c2..00000000000 --- a/spec/services/test_hook_service_spec.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'spec_helper' - -describe TestHookService, services: true do - let(:user) { create(:user) } - let(:project) { create(:project, :repository) } - let(:hook) { create(:project_hook, project: project) } - - describe '#execute' do - it "executes successfully" do - stub_request(:post, hook.url).to_return(status: 200) - expect(TestHookService.new.execute(hook, user)).to be_truthy - end - end -end diff --git a/spec/services/test_hooks/project_service_spec.rb b/spec/services/test_hooks/project_service_spec.rb new file mode 100644 index 00000000000..4218c15a3ce --- /dev/null +++ b/spec/services/test_hooks/project_service_spec.rb @@ -0,0 +1,188 @@ +require 'spec_helper' + +describe TestHooks::ProjectService do + let(:current_user) { create(:user) } + + describe '#execute' do + let(:project) { create(:project, :repository) } + let(:hook) { create(:project_hook, project: project) } + let(:service) { described_class.new(hook, current_user, trigger) } + let(:sample_data) { { data: 'sample' } } + let(:success_result) { { status: :success, http_status: 200, message: 'ok' } } + + context 'hook with not implemented test' do + let(:trigger) { 'not_implemented_events' } + + it 'returns error message' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Testing not available for this hook' }) + end + end + + context 'push_events' do + let(:trigger) { 'push_events' } + + it 'returns error message if not enough data' do + allow(project).to receive(:empty_repo?).and_return(true) + + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has at least one commit.' }) + end + + it 'executes hook' do + allow(project).to receive(:empty_repo?).and_return(false) + allow(Gitlab::DataBuilder::Push).to receive(:build_sample).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'tag_push_events' do + let(:trigger) { 'tag_push_events' } + + it 'returns error message if not enough data' do + allow(project).to receive(:empty_repo?).and_return(true) + + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has at least one commit.' }) + end + + it 'executes hook' do + allow(project).to receive(:empty_repo?).and_return(false) + allow(Gitlab::DataBuilder::Push).to receive(:build_sample).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'note_events' do + let(:trigger) { 'note_events' } + + it 'returns error message if not enough data' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has notes.' }) + end + + it 'executes hook' do + allow(project).to receive(:notes).and_return([Note.new]) + allow(Gitlab::DataBuilder::Note).to receive(:build).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'issues_events' do + let(:trigger) { 'issues_events' } + let(:issue) { build(:issue) } + + it 'returns error message if not enough data' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has issues.' }) + end + + it 'executes hook' do + allow(project).to receive(:issues).and_return([issue]) + allow(issue).to receive(:to_hook_data).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'confidential_issues_events' do + let(:trigger) { 'confidential_issues_events' } + let(:issue) { build(:issue) } + + it 'returns error message if not enough data' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has issues.' }) + end + + it 'executes hook' do + allow(project).to receive(:issues).and_return([issue]) + allow(issue).to receive(:to_hook_data).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'merge_requests_events' do + let(:trigger) { 'merge_requests_events' } + + it 'returns error message if not enough data' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has merge requests.' }) + end + + it 'executes hook' do + create(:merge_request, source_project: project) + allow_any_instance_of(MergeRequest).to receive(:to_hook_data).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'job_events' do + let(:trigger) { 'job_events' } + + it 'returns error message if not enough data' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has CI jobs.' }) + end + + it 'executes hook' do + create(:ci_build, project: project) + allow(Gitlab::DataBuilder::Build).to receive(:build).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'pipeline_events' do + let(:trigger) { 'pipeline_events' } + + it 'returns error message if not enough data' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the project has CI pipelines.' }) + end + + it 'executes hook' do + create(:ci_empty_pipeline, project: project) + allow(Gitlab::DataBuilder::Pipeline).to receive(:build).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'wiki_page_events' do + let(:trigger) { 'wiki_page_events' } + + it 'returns error message if wiki disabled' do + allow(project).to receive(:wiki_enabled?).and_return(false) + + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the wiki is enabled and has pages.' }) + end + + it 'returns error message if not enough data' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Ensure the wiki is enabled and has pages.' }) + end + + it 'executes hook' do + create(:wiki_page, wiki: project.wiki) + allow(Gitlab::DataBuilder::WikiPage).to receive(:build).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + end +end diff --git a/spec/services/test_hooks/system_service_spec.rb b/spec/services/test_hooks/system_service_spec.rb new file mode 100644 index 00000000000..00d89924766 --- /dev/null +++ b/spec/services/test_hooks/system_service_spec.rb @@ -0,0 +1,82 @@ +require 'spec_helper' + +describe TestHooks::SystemService do + let(:current_user) { create(:user) } + + describe '#execute' do + let(:project) { create(:project, :repository) } + let(:hook) { create(:system_hook) } + let(:service) { described_class.new(hook, current_user, trigger) } + let(:sample_data) { { data: 'sample' }} + let(:success_result) { { status: :success, http_status: 200, message: 'ok' } } + + before do + allow(Project).to receive(:first).and_return(project) + end + + context 'hook with not implemented test' do + let(:trigger) { 'not_implemented_events' } + + it 'returns error message' do + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: 'Testing not available for this hook' }) + end + end + + context 'push_events' do + let(:trigger) { 'push_events' } + + it 'returns error message if not enough data' do + allow(project).to receive(:empty_repo?).and_return(true) + + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: "Ensure project \"#{project.human_name}\" has commits." }) + end + + it 'executes hook' do + allow(project).to receive(:empty_repo?).and_return(false) + allow(Gitlab::DataBuilder::Push).to receive(:build_sample).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'tag_push_events' do + let(:trigger) { 'tag_push_events' } + + it 'returns error message if not enough data' do + allow(project.repository).to receive(:tags).and_return([]) + + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: "Ensure project \"#{project.human_name}\" has tags." }) + end + + it 'executes hook' do + allow(project.repository).to receive(:tags).and_return(['tag']) + allow(Gitlab::DataBuilder::Push).to receive(:build_sample).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + + context 'repository_update_events' do + let(:trigger) { 'repository_update_events' } + + it 'returns error message if not enough data' do + allow(project).to receive(:commit).and_return(nil) + expect(hook).not_to receive(:execute) + expect(service.execute).to include({ status: :error, message: "Ensure project \"#{project.human_name}\" has commits." }) + end + + it 'executes hook' do + allow(project).to receive(:empty_repo?).and_return(false) + allow(Gitlab::DataBuilder::Repository).to receive(:update).and_return(sample_data) + + expect(hook).to receive(:execute).with(sample_data, trigger).and_return(success_result) + expect(service.execute).to include(success_result) + end + end + end +end diff --git a/spec/services/web_hook_service_spec.rb b/spec/services/web_hook_service_spec.rb index b5abc46e80c..7ff37c22963 100644 --- a/spec/services/web_hook_service_spec.rb +++ b/spec/services/web_hook_service_spec.rb @@ -58,7 +58,7 @@ describe WebHookService, services: true do exception = exception_class.new('Exception message') WebMock.stub_request(:post, project_hook.url).to_raise(exception) - expect(service_instance.execute).to eq([nil, exception.message]) + expect(service_instance.execute).to eq({ status: :error, message: exception.message }) expect { service_instance.execute }.not_to raise_error end end @@ -66,13 +66,13 @@ describe WebHookService, services: true do it 'handles 200 status code' do WebMock.stub_request(:post, project_hook.url).to_return(status: 200, body: 'Success') - expect(service_instance.execute).to eq([200, 'Success']) + expect(service_instance.execute).to include({ status: :success, http_status: 200, message: 'Success' }) end it 'handles 2xx status codes' do WebMock.stub_request(:post, project_hook.url).to_return(status: 201, body: 'Success') - expect(service_instance.execute).to eq([201, 'Success']) + expect(service_instance.execute).to include({ status: :success, http_status: 201, message: 'Success' }) end context 'execution logging' do diff --git a/spec/support/slack_mattermost_notifications_shared_examples.rb b/spec/support/slack_mattermost_notifications_shared_examples.rb index 044c09d5fde..6accf16bea4 100644 --- a/spec/support/slack_mattermost_notifications_shared_examples.rb +++ b/spec/support/slack_mattermost_notifications_shared_examples.rb @@ -78,7 +78,7 @@ RSpec.shared_examples 'slack or mattermost notifications' do wiki_page_service = WikiPages::CreateService.new(project, user, opts) @wiki_page = wiki_page_service.execute - @wiki_page_sample_data = wiki_page_service.hook_data(@wiki_page, 'create') + @wiki_page_sample_data = Gitlab::DataBuilder::WikiPage.build(@wiki_page, user, 'create') end it "calls Slack/Mattermost API for push events" do