summaryrefslogtreecommitdiff
path: root/app/workers/update_head_pipeline_for_merge_request_worker.rb
blob: f4d2ec28bea038b4a7ca23cc47c0d680f6f52657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class UpdateHeadPipelineForMergeRequestWorker
  include ApplicationWorker
  include PipelineQueue

  def perform(merge_request_id)
    merge_request = MergeRequest.find(merge_request_id)
    pipeline = Ci::Pipeline.where(project: merge_request.source_project, ref: merge_request.source_branch).last

    return unless pipeline && pipeline.latest?
    raise ArgumentError, 'merge request sha does not equal pipeline sha' if merge_request.diff_head_sha != pipeline.sha

    merge_request.update_attribute(:head_pipeline_id, pipeline.id)
  end
end