Class: MergeRequests::ShipMergeRequestWorker
- Inherits:
-
Object
- Object
- MergeRequests::ShipMergeRequestWorker
show all
- Includes:
- ApplicationWorker
- Defined in:
- app/workers/merge_requests/ship_merge_request_worker.rb
Constant Summary
ApplicationWorker::LOGGING_EXTRA_KEY, ApplicationWorker::SAFE_PUSH_BULK_LIMIT
Gitlab::Loggable::ANONYMOUS
WorkerAttributes::DEFAULT_CONCURRENCY_LIMIT_PERCENTAGE_BY_URGENCY, WorkerAttributes::DEFAULT_DATA_CONSISTENCY, WorkerAttributes::DEFAULT_DATA_CONSISTENCY_PER_DB, WorkerAttributes::DEFAULT_DEFER_DELAY, WorkerAttributes::LOAD_BALANCED_DATA_CONSISTENCIES, WorkerAttributes::NAMESPACE_WEIGHTS, WorkerAttributes::VALID_DATA_CONSISTENCIES, WorkerAttributes::VALID_RESOURCE_BOUNDARIES, WorkerAttributes::VALID_URGENCIES
Class Method Summary
collapse
Instance Method Summary
collapse
#build_structured_payload
#job_version
#with_context
Class Method Details
.allowed?(merge_request:, current_user:) ⇒ Boolean
19
20
21
22
23
24
|
# File 'app/workers/merge_requests/ship_merge_request_worker.rb', line 19
def self.allowed?(merge_request:, current_user:)
return false if Feature.disabled?(:ship_mr_quick_action, merge_request.project)
create_pipeline_service(merge_request: merge_request, current_user: current_user)
.allowed?(merge_request)
end
|
.create_pipeline_service(merge_request:, current_user:, params: {}) ⇒ Object
26
27
28
29
30
31
|
# File 'app/workers/merge_requests/ship_merge_request_worker.rb', line 26
def self.create_pipeline_service(merge_request:, current_user:, params: {})
::MergeRequests::CreatePipelineService.new(
project: merge_request.project,
current_user: current_user,
params: { allow_duplicate: true }.merge(params))
end
|
Instance Method Details
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'app/workers/merge_requests/ship_merge_request_worker.rb', line 33
def perform(current_user_id, merge_request_id)
merge_request = MergeRequest.find_by_id(merge_request_id)
return unless merge_request
current_user = User.find_by_id(current_user_id)
return unless current_user
response = create_pipeline(merge_request: merge_request, current_user: current_user)
return response unless response.success?
merge_request.update_head_pipeline
response = set_auto_merge(merge_request: merge_request, current_user: current_user)
GraphqlTriggers.merge_request_merge_status_updated(merge_request)
if response == :failed
ServiceResponse.error(message: "Failed to enable Auto-Merge on #{merge_request.to_reference}")
else
ServiceResponse.success(message: "Auto-Merge enabled on #{merge_request.to_reference}")
end
end
|