Class: Commits::RevertService

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

Instance Attribute Summary

Attributes inherited from BaseService

#current_user, #params, #project

Instance Method Summary collapse

Methods inherited from ChangeService

#execute

Methods inherited from BaseService

#abilities, #can?, #deny_visibility_level, #event_service, #initialize, #log_info, #notification_service, #repository, #system_hook_service, #todo_service

Methods included from Gitlab::CurrentSettings

#current_application_settings, #fake_application_settings

Constructor Details

This class inherits a constructor from BaseService

Instance Method Details

#commitObject


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/services/commits/revert_service.rb', line 3

def commit
  revert_into = @create_merge_request ? @commit.revert_branch_name : @target_branch
  revert_tree_id = repository.check_revert_content(@commit, @target_branch)

  if revert_tree_id
    create_target_branch(revert_into) if @create_merge_request

    repository.revert(current_user, @commit, revert_into, revert_tree_id)
    success
  else
    error_msg = "Sorry, we cannot revert this #{@commit.change_type_title} automatically.
                 It may have already been reverted, or a more recent commit may have updated some of its content."
    raise ChangeError, error_msg
  end
end