Skip to content
Snippets Groups Projects
Verified Commit 734a4ba8 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Create and edit files in web editor via rugged

parent 76ae8719
No related branches found
No related tags found
1 merge request!751Create and edit files in web editor via rugged
Pipeline #
Loading
Loading
@@ -45,7 +45,7 @@ gem "browser"
 
# Extracting information from a git repository
# Provide access to Gitlab::Git library
gem "gitlab_git", '~> 7.1.13'
gem "gitlab_git", '~> 7.2.0'
 
# Ruby/Rack Git Smart-HTTP Server Handler
# GitLab fork with a lot of changes (improved thread-safety, better memory usage etc)
Loading
Loading
Loading
Loading
@@ -225,7 +225,7 @@ GEM
mime-types (~> 1.19)
gitlab_emoji (0.1.0)
gemojione (~> 2.0)
gitlab_git (7.1.13)
gitlab_git (7.2.0)
activesupport (~> 4.0)
charlock_holmes (~> 0.6)
gitlab-linguist (~> 3.0)
Loading
Loading
@@ -733,7 +733,7 @@ DEPENDENCIES
gitlab-grack (~> 2.0.2)
gitlab-linguist (~> 3.0.1)
gitlab_emoji (~> 0.1)
gitlab_git (~> 7.1.13)
gitlab_git (~> 7.2.0)
gitlab_meta (= 7.0)
gitlab_omniauth-ldap (= 1.2.1)
gollum-lib (~> 4.0.2)
Loading
Loading
Loading
Loading
@@ -370,6 +370,31 @@ class Repository
@root_ref ||= raw_repository.root_ref
end
 
def commit_file(user, path, content, message, ref)
path[0] = '' if path[0] == '/'
author = {
email: user.email,
name: user.name,
time: Time.now
}
options = {}
options[:committer] = author
options[:author] = author
options[:commit] = {
message: message,
branch: ref
}
options[:file] = {
content: content,
path: path
}
Gitlab::Git::Blob.commit(raw_repository, options)
end
private
 
def cache
Loading
Loading
Loading
Loading
@@ -33,7 +33,7 @@ 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],
Loading
Loading
@@ -41,6 +41,16 @@ module Files
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
 
if created_successfully
success
Loading
Loading
Loading
Loading
@@ -19,6 +19,7 @@ module Files
return error("You can only edit text files")
end
 
if params[:encoding] == 'base64'
edit_file_action = Gitlab::Satellite::EditFileAction.new(current_user, project, ref, path)
edit_file_action.commit!(
params[:content],
Loading
Loading
@@ -26,6 +27,15 @@ module Files
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
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment