Class: MergeRequests::Mergeability::RunChecksService
- Inherits:
-
Object
- Object
- MergeRequests::Mergeability::RunChecksService
- Includes:
- Gitlab::Utils::StrongMemoize
- Defined in:
- app/services/merge_requests/mergeability/run_checks_service.rb
Instance Method Summary collapse
- #execute(checks, execute_all: false) ⇒ Object
-
#initialize(merge_request:, params:) ⇒ RunChecksService
constructor
A new instance of RunChecksService.
Constructor Details
#initialize(merge_request:, params:) ⇒ RunChecksService
Returns a new instance of RunChecksService.
7 8 9 10 |
# File 'app/services/merge_requests/mergeability/run_checks_service.rb', line 7 def initialize(merge_request:, params:) @merge_request = merge_request @params = params end |
Instance Method Details
#execute(checks, execute_all: false) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/services/merge_requests/mergeability/run_checks_service.rb', line 12 def execute(checks, execute_all: false) @results = checks.each_with_object([]) do |check_class, result_hash| check = check_class.new(merge_request: merge_request, params: params) next if check.skip? check_result = logger.instrument(mergeability_name: check_class.to_s.demodulize.underscore) do run_check(check) end result_hash << check_result break result_hash if check_result.unsuccessful? && !execute_all end logger.commit return ServiceResponse.success(payload: { results: results }) if no_result_unsuccessful? ServiceResponse.error( message: 'Checks were not successful', payload: { results: results, unsuccessful_check: unsuccessful_check } ) end |