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 ⇒ Object
- #failure_reason ⇒ Object
-
#initialize(merge_request:, params:) ⇒ RunChecksService
constructor
A new instance of RunChecksService.
- #success? ⇒ Boolean
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 ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/services/merge_requests/mergeability/run_checks_service.rb', line 12 def execute @results = merge_request.mergeability_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.failed? end logger.commit self end |
#failure_reason ⇒ Object
38 39 40 41 42 |
# File 'app/services/merge_requests/mergeability/run_checks_service.rb', line 38 def failure_reason raise 'Execute needs to be called before' if results.nil? results.find(&:failed?)&.payload&.fetch(:reason)&.to_sym end |
#success? ⇒ Boolean
32 33 34 35 36 |
# File 'app/services/merge_requests/mergeability/run_checks_service.rb', line 32 def success? raise 'Execute needs to be called before' if results.nil? results.all?(&:success?) end |