Commit 21bc41c6ee9995a821900378e933e08e4e5214bc
1 parent
dba98240
Exists in
spb-stable
and in
3 other branches
Add support of base64 encoded content
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
3 changed files
with
13 additions
and
4 deletions
Show diff stats
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) |