Skip to content
代码片段 群组 项目
未验证 提交 27ea1bac 编辑于 作者: Fabio Pitino's avatar Fabio Pitino 提交者: GitLab
浏览文件

Merge branch '327452-execute-hooks-and-integrations-at-end-of-MRAfterCreate' into 'master'

Fix AfterCreateService to trigger hooks after MR state changes

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/143447



Merged-by: default avatarFabio Pitino <fpitino@gitlab.com>
Approved-by: default avatarSincheol (David) Kim <dkim@gitlab.com>
Approved-by: default avatarFabio Pitino <fpitino@gitlab.com>
Reviewed-by: default avatarSincheol (David) Kim <dkim@gitlab.com>
Co-authored-by: default avatarLuke Duncalfe <lduncalfe@eml.cc>
No related branches found
No related tags found
无相关合并请求
...@@ -7,13 +7,14 @@ class AfterCreateService < MergeRequests::BaseService ...@@ -7,13 +7,14 @@ class AfterCreateService < MergeRequests::BaseService
def execute(merge_request) def execute(merge_request)
merge_request.ensure_merge_request_diff merge_request.ensure_merge_request_diff
logger.info(**log_payload(merge_request, 'Executing hooks'))
execute_hooks(merge_request)
logger.info(**log_payload(merge_request, 'Executed hooks'))
prepare_for_mergeability(merge_request) prepare_for_mergeability(merge_request)
prepare_merge_request(merge_request) prepare_merge_request(merge_request)
mark_merge_request_as_prepared(merge_request) mark_merge_request_as_prepared(merge_request)
logger.info(**log_payload(merge_request, 'Executing hooks'))
execute_hooks(merge_request)
logger.info(**log_payload(merge_request, 'Executed hooks'))
end end
private private
......
...@@ -69,8 +69,15 @@ ...@@ -69,8 +69,15 @@
execute_service execute_service
end end
it 'executes hooks with default action' do it 'executes hooks and integrations' do
expect(project).to receive(:execute_hooks) expected_payload = hash_including(
object_kind: 'merge_request',
event_type: 'merge_request',
object_attributes: be_present
)
expect(project).to receive(:execute_hooks).with(expected_payload, :merge_request_hooks)
expect(project).to receive(:execute_integrations).with(expected_payload, :merge_request_hooks)
execute_service execute_service
end end
...@@ -108,6 +115,19 @@ ...@@ -108,6 +115,19 @@
execute_service execute_service
end end
it 'executes hooks and integrations with correct merge_status' do
expected_payload = hash_including(
object_attributes: hash_including(
merge_status: 'checking'
)
)
expect(project).to receive(:execute_hooks).with(expected_payload, :merge_request_hooks)
expect(project).to receive(:execute_integrations).with(expected_payload, :merge_request_hooks)
execute_service
end
context 'when preparing for mergeability fails' do context 'when preparing for mergeability fails' do
before do before do
# This is only one of the possible cases that can fail. This is to # This is only one of the possible cases that can fail. This is to
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册