Commit 21bc41c6ee9995a821900378e933e08e4e5214bc

Authored by Dmitriy Zaporozhets
1 parent dba98240

Add support of base64 encoded content

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
lib/gitlab/satellite/files/edit_file_action.rb
@@ -10,7 +10,7 @@ module Gitlab @@ -10,7 +10,7 @@ module Gitlab
10 # Returns false if committing the change fails 10 # Returns false if committing the change fails
11 # Returns false if pushing from the satellite to bare repo failed or was rejected 11 # Returns false if pushing from the satellite to bare repo failed or was rejected
12 # Returns true otherwise 12 # Returns true otherwise
13 - def commit!(content, commit_message) 13 + def commit!(content, commit_message, encoding)
14 in_locked_and_timed_satellite do |repo| 14 in_locked_and_timed_satellite do |repo|
15 prepare_satellite!(repo) 15 prepare_satellite!(repo)
16 16
@@ -26,7 +26,8 @@ module Gitlab @@ -26,7 +26,8 @@ module Gitlab
26 return false 26 return false
27 end 27 end
28 28
29 - File.open(file_path_in_satellite, 'w') { |f| f.write(content) } 29 + # Write file
  30 + write_file(file_path_in_satellite, content, encoding)
30 31
31 # commit the changes 32 # commit the changes
32 # will raise CommandFailed when commit fails 33 # will raise CommandFailed when commit fails
lib/gitlab/satellite/files/file_action.rb
@@ -12,6 +12,14 @@ module Gitlab @@ -12,6 +12,14 @@ module Gitlab
12 def safe_path?(path) 12 def safe_path?(path)
13 File.absolute_path(path) == path 13 File.absolute_path(path) == path
14 end 14 end
  15 +
  16 + def write_file(abs_file_path, content, file_encoding = 'text')
  17 + if file_encoding == 'base64'
  18 + File.open(abs_file_path, 'wb') { |f| f.write(Base64.decode64(content)) }
  19 + else
  20 + File.open(abs_file_path, 'w') { |f| f.write(content) }
  21 + end
  22 + end
15 end 23 end
16 end 24 end
17 end 25 end
lib/gitlab/satellite/files/new_file_action.rb
@@ -9,7 +9,7 @@ module Gitlab @@ -9,7 +9,7 @@ module Gitlab
9 # Returns false if committing the change fails 9 # Returns false if committing the change fails
10 # Returns false if pushing from the satellite to bare repo failed or was rejected 10 # Returns false if pushing from the satellite to bare repo failed or was rejected
11 # Returns true otherwise 11 # Returns true otherwise
12 - def commit!(content, commit_message) 12 + def commit!(content, commit_message, encoding)
13 in_locked_and_timed_satellite do |repo| 13 in_locked_and_timed_satellite do |repo|
14 prepare_satellite!(repo) 14 prepare_satellite!(repo)
15 15
@@ -29,7 +29,7 @@ module Gitlab @@ -29,7 +29,7 @@ module Gitlab
29 FileUtils.mkdir_p(dir_name_in_satellite) 29 FileUtils.mkdir_p(dir_name_in_satellite)
30 30
31 # Write file 31 # Write file
32 - File.open(file_path_in_satellite, 'w') { |f| f.write(content) } 32 + write_file(file_path_in_satellite, content, encoding)
33 33
34 # add new file 34 # add new file
35 repo.add(file_path_in_satellite) 35 repo.add(file_path_in_satellite)