2016-06-02 11:05:42 +05:30
|
|
|
module MergeRequests
|
|
|
|
class AddTodoWhenBuildFailsService < MergeRequests::BaseService
|
|
|
|
# Adds a todo to the parent merge_request when a CI build fails
|
2017-08-17 22:00:37 +05:30
|
|
|
#
|
2016-06-02 11:05:42 +05:30
|
|
|
def execute(commit_status)
|
2018-03-17 18:26:18 +05:30
|
|
|
return if commit_status.allow_failure? || commit_status.retried?
|
2017-08-17 22:00:37 +05:30
|
|
|
|
2016-11-03 12:29:30 +05:30
|
|
|
commit_status_merge_requests(commit_status) do |merge_request|
|
2016-06-02 11:05:42 +05:30
|
|
|
todo_service.merge_request_build_failed(merge_request)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2017-08-17 22:00:37 +05:30
|
|
|
# Closes any pending build failed todos for the parent MRs when a
|
|
|
|
# build is retried
|
|
|
|
#
|
2016-06-02 11:05:42 +05:30
|
|
|
def close(commit_status)
|
2016-11-03 12:29:30 +05:30
|
|
|
commit_status_merge_requests(commit_status) do |merge_request|
|
2016-06-02 11:05:42 +05:30
|
|
|
todo_service.merge_request_build_retried(merge_request)
|
|
|
|
end
|
|
|
|
end
|
2017-08-17 22:00:37 +05:30
|
|
|
|
|
|
|
def close_all(pipeline)
|
|
|
|
pipeline_merge_requests(pipeline) do |merge_request|
|
|
|
|
todo_service.merge_request_build_retried(merge_request)
|
|
|
|
end
|
|
|
|
end
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
end
|