Class: Commits::CherryPickService

Inherits:
ChangeService show all
Defined in:
app/services/commits/cherry_pick_service.rb

Constant Summary

Constants inherited from CreateService

Commits::CreateService::ValidationError

Instance Attribute Summary

Attributes inherited from BaseService

#current_user, #params, #project

Instance Method Summary collapse

Methods inherited from CreateService

#execute

Methods included from BaseServiceUtility

#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level

Methods included from Gitlab::Allowable

#can?

Constructor Details

#initialize(*args) ⇒ CherryPickService

Returns a new instance of CherryPickService.



5
6
7
8
9
10
# File 'app/services/commits/cherry_pick_service.rb', line 5

def initialize(*args)
  super

  @start_project = params[:target_project] || @project
  @source_project = params[:source_project] || @project
end

Instance Method Details

#create_commit!Object



12
13
14
15
16
17
18
# File 'app/services/commits/cherry_pick_service.rb', line 12

def create_commit!
  Gitlab::Git::CrossRepo.new(@project.repository, @source_project.repository).execute(@commit.id) do
    commit_change(:cherry_pick).tap do |sha|
      track_mr_picking(sha)
    end
  end
end