diff options
Diffstat (limited to 'app/services/files/create_service.rb')
-rw-r--r-- | app/services/files/create_service.rb | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/app/services/files/create_service.rb b/app/services/files/create_service.rb deleted file mode 100644 index 23833aa78ec..00000000000 --- a/app/services/files/create_service.rb +++ /dev/null @@ -1,52 +0,0 @@ -require_relative "base_service" - -module Files - class CreateService < BaseService - def execute - allowed = Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(ref) - - unless allowed - return error("You are not allowed to create file in this branch") - end - - file_name = File.basename(path) - file_path = path - - unless file_name =~ Gitlab::Regex.file_name_regex - return error( - 'Your changes could not be committed, because the file name ' + - Gitlab::Regex.file_name_regex_message - ) - end - - if project.empty_repo? - # everything is ok because repo does not have a commits yet - else - unless repository.branch_names.include?(ref) - return error("You can only create files if you are on top of a branch") - end - - blob = repository.blob_at_branch(ref, file_path) - - if blob - return error("Your changes could not be committed, because file with such name exists") - end - end - - - new_file_action = Gitlab::Satellite::NewFileAction.new(current_user, project, ref, file_path) - created_successfully = new_file_action.commit!( - params[:content], - params[:commit_message], - params[:encoding], - params[:new_branch] - ) - - if created_successfully - success - else - error("Your changes could not be committed, because the file has been changed") - end - end - end -end |