diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-06-01 21:49:11 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-06-01 21:49:11 +0300 |
commit | 734a4ba87de7bc8cf152c5bc7f93ba04210b282d (patch) | |
tree | 56ed5cd6a3c65dadee09246338417c0676995882 /app/services | |
parent | 76ae871908b83c9de9fb05f6cf491153209a79d4 (diff) |
Create and edit files in web editor via rugged
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/files/create_service.rb | 24 | ||||
-rw-r--r-- | app/services/files/update_service.rb | 24 |
2 files changed, 34 insertions, 14 deletions
diff --git a/app/services/files/create_service.rb b/app/services/files/create_service.rb index 23833aa78ec..c0cf5956326 100644 --- a/app/services/files/create_service.rb +++ b/app/services/files/create_service.rb @@ -33,14 +33,24 @@ module Files end end + if params[:encoding] == 'base64' + 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] + ) + else + created_successfull = repository.commit_file( + current_user, + file_path, + params[:content], + params[:commit_message], + params[:new_branch] || ref + ) + 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 diff --git a/app/services/files/update_service.rb b/app/services/files/update_service.rb index 0724d3ae634..5efd43d16ce 100644 --- a/app/services/files/update_service.rb +++ b/app/services/files/update_service.rb @@ -19,13 +19,23 @@ module Files return error("You can only edit text files") end - edit_file_action = Gitlab::Satellite::EditFileAction.new(current_user, project, ref, path) - edit_file_action.commit!( - params[:content], - params[:commit_message], - params[:encoding], - params[:new_branch] - ) + if params[:encoding] == 'base64' + edit_file_action = Gitlab::Satellite::EditFileAction.new(current_user, project, ref, path) + edit_file_action.commit!( + params[:content], + params[:commit_message], + params[:encoding], + params[:new_branch] + ) + else + repository.commit_file( + current_user, + path, + params[:content], + params[:commit_message], + params[:new_branch] || ref + ) + end success rescue Gitlab::Satellite::CheckoutFailed => ex |