2020-01-21 15:08:26 +00:00
# frozen_string_literal: true
2020-05-11 15:09:37 +00:00
class MergeRequestMergeabilityCheckWorker
2020-01-21 15:08:26 +00:00
include ApplicationWorker
2021-07-21 12:09:35 +00:00
data_consistency :always
2021-04-30 18:10:09 +00:00
sidekiq_options retry : 3
2020-12-02 18:09:35 +00:00
feature_category :code_review
2020-05-11 15:09:37 +00:00
idempotent!
2020-01-21 15:08:26 +00:00
2021-08-11 18:10:52 +00:00
def logger
@logger || = Sidekiq . logger
end
2020-01-21 15:08:26 +00:00
def perform ( merge_request_id )
merge_request = MergeRequest . find_by_id ( merge_request_id )
unless merge_request
2021-08-11 18:10:52 +00:00
logger . error ( worker : self . class . name , message : " Failed to find merge request " , merge_request_id : merge_request_id )
2020-01-21 15:08:26 +00:00
return
end
result =
:: MergeRequests :: MergeabilityCheckService
. new ( merge_request )
. execute ( recheck : false , retry_lease : false )
2021-08-11 18:10:52 +00:00
logger . error ( worker : self . class . name , message : " Failed to check mergeability of merge request: #{ result . message } " , merge_request_id : merge_request_id ) if result . error?
2020-01-21 15:08:26 +00:00
end
end